2010-05-19 18 views
8

Wir arbeiten gerade an einer App mit einer relativ großen Anzahl von externen Abhängigkeiten, da wir in ein ziemlich komplexes existierendes System integrieren.Beschleunigung der Grails Abhängigkeitsauflösung

Die Abhängigkeiten funktionieren gut, es dauert jedoch einige Minuten, Abhängigkeiten aufzulösen, unabhängig davon, ob die Abhängigkeiten bereits im Ivy-Cache vorhanden sind oder nicht. Wenn der Cache aktualisiert werden muss, dauert es natürlich noch länger.

Gibt es eine Möglichkeit, diesen Prozess zu beschleunigen oder die Abhängigkeitsauflösung bei jedem Lauf zu deaktivieren? Dies wird jetzt zu einem enormen Produktivitätsverlust.

Danke!

Antwort

2

Vielleicht ist es ein wenig schwierig, aber ich würde die folgende

  1. die Umgebung Element Config dsl verwenden Sie dependecy Auflösung nur in Test-E-Produktion sehen [hier] [1]
  2. Setzen Sie alle hinzufügen Ihre Abhängigkeit Jar in der Lib Forder Ihrer Grails App würde ich es mit Maven Abhängigkeit tun: Kopie. Ich denke, es ist auch in Efeu getan werden könnte
  3. die JAR-Datei in Ihrer scm-ignore-Liste
  4. ein CI-Build-System verwendet Auflösung zu überprüfen dependecy richtig gemacht wird

    [1]: http://www.grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.2 Environments

0

Ich glaube nicht, dass es einen guten Weg gibt, um die Zeit zu überwinden, die es braucht, um die Abhängigkeitsauflösung zu machen; So wie ich es verstehe, war es eine spezielle Designentscheidung in Grails, die Abhängigkeitsauflösung beim Start zu machen, damit die App während der Laufzeit keine Abhängigkeiten einholen muss.

Sie könnten das im Dev-Modus umgehen, indem Sie einfach Ihre Grails-App laufen lassen und alle Änderungen im laufenden Betrieb bereitstellen - wenn Sie eine der letzten Grails-Versionen mit dem eingebetteten Tomcat-Server verwenden, funktioniert das sehr gut.

+0

Grails ist voller Sie-wissen-was (ja, ich bin wütend). Es ist extrem langsam * irgendeinen Befehl * zu tun! Die Hot-Bereitstellung funktioniert nicht für Änderungen an Domänenobjekten oder Dienständerungen (obwohl dies für Controller funktioniert). Nicht sicher warum! Ich habe gerade ein Projekt gestartet, das Grails verwendet und obwohl ich viele Features mag, die groovy + grails bietet, ist es auch verdammt langsam! Equivalent maven/jetty/überwintern/frühjahr/hsql/plain java setup startet in weniger als 10 sekunden! Code ist genauso einfach mit Anmerkungen zu schreiben, IMO! – les2

1

versuchen Sie es mit dem Schalter --offline. Dies vermeidet entfernte Repositories und durchsucht nur das Dateisystem (d. h. local maven repo). Sie müssen nur online zurückkehren, wenn neue Abhängigkeiten hinzugefügt werden.

Verwandte Themen