Wenn Sie mit maven auf einem Multicore- / Multi-CPU-Computer erstellen, ist es häufig möglich, verschiedene Teilprojekte parallel zu erstellen. Gibt es eine Möglichkeit, dies mit Maven zu tun? Gibt es ein Plugin für dieses / was auch immer?
maven-2
build-process
build-automation
Hans-Peter Störr
quelle
quelle
Die vorgeschlagenen Lösungen sind großartig, aber ich wollte den Antworten hier etwas zur Teststabilität während paralleler Builds hinzufügen .
Wenn also Maven Parallel Build verwendet wird:
Einige Probleme mit Tests können auftreten. Beachten Sie jedes Verhalten in Tests, das sich zwischen serieller und paralleler Testausführung unterscheidet. In den meisten Fällen wird die Testisolierung in Bezug auf die Ressourcen nicht ordnungsgemäß durchgeführt .
Zum Beispiel manipuliert test1 den Datenbankeintrag mit dem Schlüssel 12345, der fest codiert ist und test2 denselben Eintrag verwendet! Es kann nicht gut sein ...
Es ist eine Situation, die an erster Stelle in Betracht gezogen werden sollte, aber manchmal wird sie vergessen und kann zu unterschiedlichen Problemen führen, sobald der Wechsel zum parallelen Maven-Build erfolgt.
In diesem Fall und wenn Sie zumindest in einigen Fällen immer noch die parallele Ausführung verwenden möchten, können Sie (abgesehen davon, dass Sie versuchen, den Test zu reparieren und ordnungsgemäß zu isolieren) Maven-Testläufe mit dem Argument -DskipTests deaktivieren :
quelle
Einige der CI-Build-Anwendungen (z. B. Hudson) können mehrere Maven-Projekte gleichzeitig erstellen (und sogar auf mehreren Computern).
Die Unterstützung dafür in Maven 'Standalone' wäre auch nett, ein kurzer Blick durch den Maven Issue Tracker gab mir: http://jira.codehaus.org/browse/MNG-3004
quelle
Wenn Sie zu dieser Frage gekommen sind, um Ihren Build-Server zu sortieren, und keinen verwenden, der sich nativ mit Maven befasst, ist die magische Flagge, nach der Sie suchen, folgende:
Wenn Sie dies für jeden Ihrer Builds tun, können Sie sie alle gleichzeitig ausführen lassen, anstatt alles, was Maven verwendet, in einer Warteschlange zu haben!
quelle