# [maven2] Goals Projektabhängig auswählen



## anonym (11. Jan 2010)

Hallo, 

kann sein, dass es einfach an meiner Maven- Unwissenheit liegt, aber: 

Derzeit rufe ich maven immer mit

mvn clean install

bzw. 

mvn clean tomcat:deploy

auf. Maven führt dann das clean- Goal und das deploy- Goal des Tomcat- Plugins (bzw. im ersten Beispiel clean und install) aus. 
Nun habe ich aber ein Multi- Module- Projekt in dem sowohl WebApps wie auch jar- Projekte die diese dann referenzieren liegen. Rufe ich clean tomcat:deploy auf, wird das install der jar- Projekte nicht ausgeführt. Folglich werden meine jar- Projekte nicht erneuert. Rufe ich install auf, wird nicht deployed. Rufe ich 

mvn clean install tomcat:deploy 

auf. Werden auch die WebApps installed. Da sowohl deploy wie auch install compile und assembly enthalten, wird also zwei mal compiled und zwei mal ein war- Archiv gepackt. Auch tests laufen zweimal (das sieht man in der Konsole). Da gerade das die zeitaufwendigen Dinge sind, würde ich das gerne vermeiden. Aber: Wie lautet der mvn- Aufruf dafür? 
Oder muss ich irgdnwie die poms umstricken? 

Schöne Grüße, 

campino


----------



## kama (11. Jan 2010)

Hallo,

wie hast Du denn das tomcat-plugin konfiguriert und vor allem  an welche Phase ist das gebunden ? 

EDIT: mvn package tomcat:deploy schon mal probiert ?

MfG
Karl Heinz Marbaise


----------



## byte (11. Jan 2010)

Wenn Du ein Parent Projekt samt POM anlegst, dann kannst Du einen install auf den Parent machen und der Aufruf wird an alle Kinder delegiert. Auf diese Weise kannst Du also mit einem mvn install alle Module installieren.

Ich bezweifel aber, dass ein tomcat:deploy auf den Parent klappt.


----------



## anonym (12. Jan 2010)

byte hat gesagt.:


> Ich bezweifel aber, dass ein tomcat:deploy auf den Parent klappt.


Doch, geht. Weil maven alle Goals an die Unterprojekte weitergibt und die dann sehen, was sie damit machen. Wo kein Tomcat- Plugin konfiguriert ist, wird das deploy ignoriert. 
Heißt: in der pom des Parent- Projekt kein tomcat- Plugin, in den poms der Unterprojekte, da, wo es benötigt wird und tomcat:deploy auf den parent deployed alles, wo das möglich ist. 

An welche Phase das Plugin gebunden ist verrät leider weder der pom noch die Dokumentation. Aber der Trick mit mvn clean package tomcat:deploy scheint zu gehen. 
Danke für den Tipp.


----------



## byte (12. Jan 2010)

Schöne Sache, werd ich auch gleich mal testen.


----------

