Ich habe ein großes Projekt besteht aus 18 Modulen und einem Elternprojekt. Dieses Projekt dauert ungefähr eine Stunde und um dies zu verbessern, haben wir uns entschieden, maven Profile zu verwenden, um die Zeit zu verkürzen, indem wir 4 verschiedene maven-Profile setzen, von denen jedes einzelne die Projektmodule enthält. die Mutter pom.xml Module war:maven build process improvement
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
<module>module4</module>
<module>module5</module>
<module>module6</module>
<module>module7</module>
<module>module8</module>
</modules>
jetzt ist es so etwas wie
<profiles>
<profile>
<id>main</id>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
</profile>
<profile>
<id>profile1</id>
<modules>
<module>module4</module>
<module>module5</module>
</modules>
</profile>
<profile>
<id>profile2</id>
<modules>
<module>module6</module>
</modules>
</profile>
<profile>
<id>profile3</id>
<modules>
<module>module7</module>
<module>module8</module>
</modules>
</profile>
</profiles>
wir jenkins werden mit dem Projekt zu erstellen, und wir bieten die Profilnamen in den Maven-Optionen. Das Problem hier ist, wir sehen, dass der Build fast die gleiche Zeit dauert, und es zeigt im Protokoll, dass Sonar und Clover Coverage auf dem ganzen Projekt nicht diesen Satz von Modulen laufen! eine Idee, wie das zu beheben? hat jemand vielleicht einen besseren Ansatz?
Erwarten Sie zum Beispiel, dass Modul 6 analysiert wird, wenn Sie 'profile2' ausführen? und die Module 7 und 8 sollen analysiert werden, wenn Sie 'profile3' ausführen? –
Ja! Ich habe versucht, innerhalb der Profildefinition zu verwenden, und es funktionierte für einige Module, aber für andere funktionierte nicht nicht sicher warum. Auch der Pom sieht nicht gut aus, weil ich das in jedem Profil machen musste. –
fancier
Zuerst wirklich für nur 18 Module dauert es 1 Stunde zu bauen? Warum läuft Sonar bei jedem Build? Kleeblattabdeckung? Entfernen Sie zuerst die Sonaranalyse, weil eine Sonaranalyse nur einmal am Tag Sinn macht. Laufen Sie ohne irgendwelche Tests (sind diese Tests wirklich Komponententests?) Haben Sie überprüft, wie lange die Tests dauern? Kann leicht aus dem Log-Output in Jenkins extrahiert werden ... (BTW: Die Profile sind nicht wirklich die Lösung) .. – khmarbaise