Frage

Ich bin mit einem lokalen artifactory die Anforderung an den Proxy, aber die Build- und Testphasen sind immer noch ein bisschen langsam. Es ist nicht die tatsächliche Kompilierung und Tests, die langsam sind, ist es das „Warm-up“ des maven2 Rahmen ist. Irgendwelche Ideen?

War es hilfreich?

Lösung

Es gibt einige Möglichkeiten, einige der Build-Aufgaben zu optimieren. Zum Beispiel kann die ‚saubere‘ Aufgabe von Minuten optimiert wird nur zu einfachen Trick Millisekunden mit -. Umbenennen ‚Ziel‘ Ordner statt löscht

Um Details zu bekommen, wie es tun finden Sie unter Beschleunigen Sie Maven bauen .

Andere Tipps

Ich weiß nicht, welche Version von Maven Sie verwenden, gehe ich davon aus 2, aber ich werde geben, was ich für Maven 1.x verwenden zu beschleunigen und die Dinge ein klein wenig schneller zu bauen.

Diese werden die JUnit-Tests in einem neuen Prozess Gabel (hilft auch, wenn Sie die Umgebungsvariablen in Tests verwenden usw. und gibt den Tests ein wenig mehr Speicher.

-Dmaven.junit.fork=true
-Dmaven.junit.jvmargs=-Xmx512m

Diese Gabeln die Zusammenstellung, die für Sie die Dinge

beschleunigen könnte
-Dmaven.compile.fork=true

Ich hoffe, das ein wenig helfen können, versuchen Sie es aus.

Siehe auch bekommt mehr Geschwindigkeit mit Ihrem maven2 Build .

Wenn Sie Maven3 ($ mvn -version) verwenden, können Sie auch diese Führer . In meinem Fall sind die Ergebnisse:

Normalausführung:

$ mvn clean install 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:05 min
[INFO] Finished at: 2015-07-15T11:47:02+02:00
[INFO] Final Memory: 88M/384M

Mit Parallel Processing (4 Threads):

$ mvn -T 4 clean install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:22 min (Wall Clock)
[INFO] Finished at: 2015-07-15T11:50:57+02:00
[INFO] Final Memory: 80M/533M

Parallel Processing (2 Fäden pro Kern)

$ mvn -T 2C clean install

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:12 min (Wall Clock)
[INFO] Finished at: 2015-07-15T12:00:29+02:00
[INFO] Final Memory: 87M/519M
[INFO] ------------------------------------------------------------------------

Wie wir sehen können, ist der Unterschied, es ist fast eine Minute, in der Nähe von 20 bis 30% der Verbesserung der Geschwindigkeit.

  1. Speicherkonfigurationen anpassen für zB Optimum: fügen Sie diese Zeile mvn.bat set MAVEN_OPTS = -Xmx512m -XX: MaxPermSize = 256m

  2. Saubere Phase mvn normalerweise löscht Zielordner. Stattdessen, wenn wir umbenennen Zielordner wird die Reinigungsphase viel schneller sein. << a href = "http://bosy.dailydev.org/2009/02/speed-up-your-maven-build-four-times.html "rel =" nofollow "> Rubit >

  3. -Dmaven.test.skip = true wird die Testausführung überspringen.

  4. In -Denforcer.skip = true mvn Kommandozeilenargument (Dies ist Versionen von Maven Durchsetzung jdk etc, können wir es nach der ersten Läufe überspringen)

  5. Deaktivieren unkritische Operationen während Aufbauphase: Analyse, javadoc Generation, Quelle Verpackung. Dies wird enorm viel Zeit sparen.

  6. Spawnig neuer Prozess hilft auch bei der Zeitverbesserung -Dmaven.junit.fork = true (Gabel, welche die JUnit-Tests in einen neuen Prozess) -Dmaven.compile.fork = true (Gabeln die Kompilierung)

    Hoffe, es hilft.

Sie können mit -DskipTests=true Unit-Tests überspringen. welche beschleunigen würde baut

Ich habe, dass die Projekte Parsen Reaktor gefunden ist deutlich langsamer als Single-pom-Projekte. Wenn Ihre Build-Reaktor (Multi-Modul) und Ihre Entwickler auf allen Modulen zur gleichen Zeit nicht arbeiten, können Sie die übergeordnete POM entfernen und separat bauen, die Lösung die Abhängigkeiten des lokalen Repo verwenden. Der Nachteil ist, dass Sie ein Modul, um installieren oder bereitstellen müssen für ihre Familienangehörigen um die Änderungen zu sehen.

Auch möchten Sie vielleicht an der neuen Maven 2.1 M1 suchen, die einige signifikante Verbesserungen in der Geschwindigkeit enthält.

Wenn keine dieser hilft, Posten mehr Details über Ihre Projektkonfiguration (Module Struktur und Plugins), Befehlszeilenparameter und Hardware-Konfiguration (Speicher und Festplatte). Ausführen von Maven mit -X könnte auch zeigen, wo es seine Zeit.

Ich würde lokal installierte Nexus verwenden.

Zunächst sollten Sie eine feinere Analyse auf Bauzeiten mit so etwas wie bekommen diese und Identifizierung der Kandidaten, die die meiste Zeit einnehmen.

Sind Spinnen Tests eine H2-Datenbank pro Test auf? Ist der Download von externen JAR-Dateien sich die Zeit nehmen? Dies führt, wo Ihre Untersuchung zu konzentrieren. Gerade die Anwendung unterwegs schnelle Fahnen in der Regel nicht funktionieren, da sie bereits standardmäßig enthalten gewesen wären, und Sie wollen nicht Ihre Tests mit Spring-Flags zu opfern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top