2009-10-23 10 views
8

Ist es möglich zu tun?Build einzelnes Modul von Multimodul POM

Die Umgebung: Multimodul pom besteht aus 3 Modulen: mm1, mm2, mm3. Modul mm2 hat mm1 als Abhängigkeit. Es ist möglich, Elternpom ohne Fehler zu erstellen.

Die Frage: Ist es möglich, ein einzelnes Modul mm2 (d. H. Lauf Maven von mm2 Basisverzeichnis) zu erstellen, ohne mm1 in das lokale Repository zu installieren?

Danke.

+0

Sind Sie Rodolphe? Hast du Kostenlos? : D –

+0

Sorry, was? :) – igorp1024

Antwort

3

Ohne automatische Installation nicht, aber es ist möglich, nur ausgewählte Projekte zu bauen. Sie müssen Multi-Modul-Build haben (ich nehme an, Sie tun). Im Reaktormodus muss jeder Befehl von der Wurzel des Reaktors ausgeführt werden.

So in Ihrem Fall:

mvn reactor:make -Dmake.folders=mm2

In diesem Fall Sie mm2 Modul und Module von denen es abhängt (mm1) bauen.

Nützliche Links:

Von Buch Beispiele, die ich nur Projekt bauen bestehen und seine Abhängigkeit Projektmodell.Andere Projekte unberührt sind mit mvn reactor:make -Dmake.folders=sample-persist

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

Weitere nützliche Befehl reactor:make-dependents die Projekte erstellen, die auf X abhängen

0

Dies widerspricht dem Prinzip der Abhängigkeiten von Maven2. Was ist das Interesse genau das zu tun?

Allerdings können wir uns vorstellen, die mm1 Abhängigkeit von mm2 als system Abhängigkeit zu definieren:

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

Das macht meine Augen blutend :) –

14

Ich bin nicht sicher, was du meinst genau durch „ohne mm1 in lokalen Repository zu installieren“. Meinst du vorher mm2 oder nie bauen?

Im Zweifel, vielleicht eines der neuen Build-Optionen in der Post Maven Tips and Tricks: Advanced Reactor Options Blog angekündigt helfen:

Beginnend mit dem Maven 2.1 Release, gibt es neue Maven Befehlszeile Optionen, die es Ihnen ermöglichen, zu manipulieren die Art, wie Maven Multimodul-Projekte bauen wird. Diese neuen Optionen sind:

-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 

ich speziell dachte an die -pl und -am Optionen. Um eine Untergruppe der Module zu bauen, führen Sie das folgende aus dem Stammverzeichnis

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

Allerdings bin ich mir nicht sicher, dass dies Ihre Frage beantwortet (die für mich nicht ganz klar ist).

+0

+1 Jetzt sehe ich, dass ich Ihre Post nicht sorgfältig gelesen habe und fast die gleiche Antwort schreibe. – cetnar

Verwandte Themen