2009-10-23 4 views
8

Est-il possible de faire?Construire un seul module à partir de multimodule pom

L'environnement: Le multimodule pom est constitué de 3 modules: mm1, mm2, mm3. Le module mm2 a mm1 comme dépendance. Il est possible de construire pom parent sans aucune erreur.

La question: est-il possible de construire un seul module mm2 (c'est-à-dire lancer maven à partir du répertoire de base mm2) sans installer mm1 dans le référentiel local?

Merci.

+0

Êtes-vous Rodolphe? Avez-vous libre? : D –

+0

Désolé, quoi? :) – igorp1024

Répondre

3

Sans installation automatique pas, mais il est possible de ne construire que des projets choisis. Vous devez avoir plusieurs modules (je suppose que vous le faites). En mode réacteur, chaque commande doit être exécutée à partir de la racine du réacteur.

Donc dans votre cas:

mvn reactor:make -Dmake.folders=mm2

Dans ce cas, vous construisez module mm2 et des modules dont il dépend (MM1).

Liens utiles:

A partir d'exemples de livres que je construis seul projet persistent et son modèle de projet de dépendance.D'autres projets ne sont pas touchées avec mvn reactor:make -Dmake.folders=sample-persist

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

Autre commande utile est reactor:make-dependents qui construisent des projets qui dépendent de X.

0

Cela va à l'encontre du principe des dépendances de Maven2. Quel est l'intérêt de faire cela exactement?

Cependant, on peut imaginer pour définir la dépendance de MM1 mm2 en tant que dépendance system:

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

Cela fait mes yeux qui saignent :) –

14

Je ne sais pas ce que vous entendez exactement par « sans installer MM1 dans le référentiel local ». Voulez-vous dire auparavant à la construction mm2 ou jamais?

En cas de doute, peut-être l'une des nouvelles options de construction annoncées dans le billet de blog Maven Tips and Tricks: Advanced Reactor Options peut aider:

partir de la version Maven 2.1, il y a de nouvelles commandes Maven ligne les options qui vous permettent de manipuler la façon dont Maven va construire projets multimodules. Ces nouvelles options sont :

-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 

je pense en particulier aux -pl et -am options. Pour construire un sous-ensemble des modules, exécutez la commande suivante à partir du répertoire racine

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

Cependant, je ne suis pas sûr que cela répond à votre question (ce qui est tout à fait clair pour moi).

+0

+1 Maintenant, je vois que je n'ai pas lu votre message attentivement et écrire presque la même réponse. – cetnar

Questions connexes