2009-10-23 19 views
8

Czy można to zrobić?Zbuduj pojedynczy moduł z multimodułu pom

Środowisko: Multimoduł pom składa się z 3 modułów: mm1, mm2, mm3. Moduł mm2 ma zależność mm1. Możliwe jest zbudowanie pom-rodziców bez żadnych błędów.

Pytanie: Czy możliwe jest zbudowanie pojedynczego modułu mm2 (tj. Uruchomienie programu z katalogu podstawowego mm2) bez instalowania mm1 w lokalnym repozytorium?

Dzięki.

+0

Czy jesteś Rodolphe? Czy masz bezpłatny? : D –

+0

Przepraszam, co? :) – igorp1024

Odpowiedz

3

Bez automatycznego instalowania nie, ale możliwe jest budowanie tylko wybranych projektów. Musisz mieć kompilację wielomodułową (zakładam, że to robisz). W trybie reaktora każde polecenie należy uruchomić z korzenia reaktora.

Więc w twoim przypadku:

mvn reactor:make -Dmake.folders=mm2

W tym przypadku można zbudować moduł mm2 i moduły, na których zależy (MM1).

Przydatne linki:

przykładów Book I tylko budować projekt utrzymywać i jego zależność od modelu projektu.Inne projekty są nietknięte z mvn reactor:make -Dmake.folders=sample-persist

alt text http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png

innych przydatnych komendy reactor:make-dependents który budować projekty, które zależą od X.

0

Jest to sprzeczne z zasadą zależności Maven2. Jakie jest zainteresowanie robieniem tego dokładnie?

Możemy jednak wyobrazić sobie, aby określić zależność MM1 o mm2 jako zależność system:

<dependency> 
    <groupId>...</groupId> 
    <artifactId>mm1</artifactId> 
    <version>...</version> 
    <scope>system</scope> 
    <systemPath>../mm1/target/</systemPath> 
</dependency> 
+0

To sprawia, że ​​moje oczy krwawią :) –

14

Nie jestem pewien, co dokładnie masz na myśli przez „bez instalowania MM1 w lokalnym repozytorium”. Czy masz na myśli wcześniej budowanie mm2 czy nigdy?

W razie wątpliwości, być może jeden z nowych opcji kompilacji ogłoszonych w poście Maven Tips and Tricks: Advanced Reactor Options blog może pomóc:

Począwszy Maven 2.1 wydaniu nowych opcje linii poleceń Maven które pozwalają manipulować sposób, w jaki Maven zbuduje wielomodułowe projekty . Te nowe opcje:

-rf, --resume-from 
     Resume reactor from specified project 
-pl, --projects 
     Build specified reactor projects instead of all projects 
-am, --also-make 
     If project list is specified, also build projects required by the list 
-amd, --also-make-dependents 
     If project list is specified, also build projects that depend on projects on the list 

byłem specjalnie myśleć opcji -pl i -am. Aby zbudować podzbiór modułów, uruchom następujące polecenia z katalogu głównego

$ mvn --projects mm2 --also-make install 

Jednak nie jestem pewien, że to odpowiada na Twoje pytanie (co nie jest całkowicie jasne dla mnie).

+0

+1 Teraz widzę, że nie czytałem twojego listu uważnie i piszę prawie tę samą odpowiedź. – cetnar