2009-10-01 7 views

Répondre

4

La manière Maven de "déclencher" une autre construction consiste à définir un multi-module build. Un projet parent pom peut spécifier des modules, qui seront tous construits en utilisant le cycle de vie standard. Donc, exécuter mvn install sur le parent signifierait que chaque module est construit à son tour.

Le parent est défini par pom packagin et aurait une déclaration de modules comme celui-ci:

<modules> 
    <module>module-a</module> 
    <module>module-b</module> 
</modules> 

Alternativement, il est possible d'attacher des objets supplémentaires à une construction de sorte qu'ils sont déployés à côté des objets primaires (en supposant qu'ils avons déjà été emballés, vous pouvez utiliser le build-helper-maven-plugin pour attach un fichier arbitraire à votre pom, il sera déployé avec le classificateur spécifié. la configuration suivante attache le fichier spécifié comme my-artifact-1.0-extra.jar

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
     <id>attach-artifacts</id> 
     <phase>package</phase> 
     <goals> 
      <goal>attach-artifact</goal> 
     </goals> 
     <configuration> 
      <artifacts> 
      <artifact> 
       <file>/path/to/extra/file.jar</file> 
       <type>jar</type><!--or specify your required extension--> 
       <classifier>extra</classifier> 
      </artifact> 
      </artifacts> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
4

Comme indiqué, la façon de lancer un objectif (disons mvn install) sur un ensemble de modules est de les organiser comme un projet multi-module et de lancer l'objectif sur le pom parent. Derrière la scène, Maven utilisera un "réacteur Maven" pour ce travail. Le réacteur calcule l'ordre de construction en faisant un tri topologique des nœuds du graphe orienté construit par la relation de dépendance entre les modules. Ce graphique est construit en regardant <modules> et <dependencies> étiquettes dans poms.

Mais le lancement maven d'un parent est pas la seule option et Maven offre plus de possibilités de jouer avec le réacteur (par exemple, faire un projet et ses dépendances ou ceux qui en dépendent):

Vérifiez, il pourrait vous aider à atteindre votre objectif.

Questions connexes