Question

Est-il possible de le faire?

Environnement: Le pom multimodule est composé de 3 modules: mm1, mm2, mm3. Le module mm2 a mm1 comme dépendance. Il est possible de créer un pom parent sans erreur.

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

Merci.

Était-ce utile?

La solution

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

Donc dans votre cas:

réacteur mvn: make -Dmake.folders = mm2

Dans ce cas, vous construisez le module mm2 et les modules dont il dépend (mm1).

Liens utiles:

À partir d'exemples de livre, je ne construis que des projets persistants et son modèle de projet de dépendance. D'autres projets ne sont pas touchés réacteur mvn: make -Dmake.folders = sample-persist

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

Une autre commande utile est reacteur: make-dependents qui construit des projets qui dépendent de X.

Autres conseils

Je ne suis pas sûr de comprendre ce que vous voulez dire exactement par "sans installer mm1 dans un référentiel local". Voulez-vous dire précédemment à la construction de mm2 ou jamais?

En cas de doute, peut-être une des nouvelles options de construction annoncées dans les Trucs et astuces Maven: les options de réacteur avancées peuvent vous aider:

  

À partir de la version Maven 2.1,   il y a une nouvelle ligne de commande Maven   options qui vous permettent de manipuler   la façon dont Maven va construire   projets multimodules. Ces nouveaux   les 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 pensais spécifiquement aux options -pl et -am . Pour créer un sous-ensemble de modules, exécutez ce qui suit à partir du répertoire racine

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

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

Cela va à l’encontre du principe de dépendance de Maven2. Quel est l’intérêt de le faire exactement?

Cependant, nous pouvons imaginer définir la dépendance mm1 de mm2 en tant que dépendance système :

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top