Mam następujące projekty organizowane w płaskiej uporządkowany sposób:Maven projekt multi-moduł i Jenkins
parentProject
+-pom.xml
projectWeb <depends on libraryA and libraryB>
+-pom.xml
libraryA
+-pom.xml
libraryB
+-pom.xml
pom.xml wewnątrz parentProject ma odniesienia do innych modułów i jej stosować do spadków i dependencyManagement, tutaj jest fragment:
<project>
....
<modules>
<module>../projectWeb</module>
<module>../libraryA</module>
<module>../libraryB</module>
</modules>
<dependencyManagement>
...
</dependencyManagement>
<build>
...
</build>
....
</project>
W Jenkins mam jedno zadanie maven dla każdego projektu, i to działa dobrze, kiedy budować parentProject, tj. buduje każdy projekt wymieniony w sekcji modules
. Problem, który mam, kiedy zobowiązuję się do SVN zmiany w libraryA
, oczekiwałbym, że po zbudowaniu biblioteki A, przebuduje się na projectWeb
, która ma zostać uruchomiona, ale tak się nie stało. Ktoś wie, co robię źle?
Z góry dziękuję.
EDIT
Kiedy usunąć sekcję modules
z parentProject\pom.xml
, to działa jak espected, ale tracą przewagę agregacji o pom nadrzędnego.
Dziękuję za odpowiedź, ale gdy wstawiam edytowane pytanie: Jeśli usuwam moduły z macierzystej pom, kompilacje są uruchamiane zgodnie z oczekiwaniami, tj. Jeśli zbuduję 'libraryA', to' proyectWeb' jest budowane automatycznie, bez konfiguracji wspomniałeś. – sivainvi