78 votes

Comment créer un projet Maven multi-modules vide ?

En ce moment, je trouve généralement un pom.xml sur le web qui a un pom et le copier-coller pour créer mon projet parent. Ensuite, j'ai exécuté archetype:create à l'intérieur du répertoire parent pour créer des sous-modules mais archetype:create est devenu déprécié depuis lors.

Des recommandations sur la façon de créer de nouveaux projets Maven multi-modules ?

5voto

user2064497 Points 11

Même réponse que Chris H. J'ai juste ajouté les options groupId, artifactId et version et désactivé le mode interactif.

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes \
    -DarchetypeArtifactId=pom-root \
    -DarchetypeVersion=RELEASE \
    -DinteractiveMode=false \
    -DgroupId=com.mycompany.app \
    -DartifactId=my-app \
    -Dversion=1.0.0-SNAPSHOT  \

4voto

Novice Points 348

Considérons un projet parent bookmarks et 3 sous-modules rest, security et model, se référant à Documents sur le printemps . Il n'y a pas les dépendances comme dans la doc de Spring, juste la configuration de base du point de vue multi-module.

Pour créer un projet maven parent en mode non interactif/mode batch

mvn archetype:generate \
-DarchetypeGroupId=org.codehaus.mojo.archetypes \
-DarchetypeArtifactId=pom-root \
-DarchetypeVersion=RELEASE \
-DgroupId=bookmarks \
-DartifactId=bookmarks \
-Dversion=0.0.1-SNAPSHOT \
-DinteractiveMode=false

Pour créer des sous-modules en mode non interactif/ mode batch.

cd dans votre répertoire racine nouvellement créé. En se référant à la réponse de @ Chris.H

-Dpackage est la structure du paquet. Ici, il s'agit de signets. Si elle n'est pas spécifiée, l'artefactId sera considéré comme le paquetage par défaut.

mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=RELEASE \
-DgroupId=model \
-DartifactId=model \
-Dversion=0.0.1-SNAPSHOT \
-Dpackage=bookmarks \
-DinteractiveMode=false 

Pour créer un nouveau module dans eclipse, allez dans File->new->other->maven->maven module, cela apparaît immédiatement dans l'explorateur de paquets de l'espace de travail d'eclipse.

Ou à partir de cli, cd à l'intérieur du dossier parent, ici bookmarks et exécuter ce qui suit, il va créer le projet et ensuite vous devez l'importer dans eclipse comme un projet maven, ou vous pouvez travailler à partir du projet parent, ici bookmarks.

mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=RELEASE \
-DgroupId=security \
-DartifactId=security \
-Dversion=0.0.1-SNAPSHOT \
-Dpackage=bookmarks \
-DinteractiveMode=false

1voto

Padmini Mandal Points 11

4 étapes simples si vous voulez éviter le copier-coller du xml.

  1. Créez un projet archétype 284 (par défaut). Ouvrez le fichier pom créé, changez le packaging de jar à pom.

  2. Supprimer le dossier src du projet - C'est maintenant le projet Parent sans src, puisque le packaging est pom. Dans le dossier ci-dessus, créez un autre nouveau projet (284 par défaut). Changez le packaging en war ou ejb ou ear. Ceci devient le sous-module.

  3. Exécutez mvn eclipse:eclipse sur chaque module. Maintenant le projet devrait être prêt à être importé comme un projet Eclipse.

  4. Lors de l'importation du projet, Eclipse se plaint du problème suivant La configuration du projet n'est pas à jour avec pom.xml. Exécutez Maven->Mise à jour du projet ou utilisez la réparation rapide. Pour éviter l'erreur ci-dessus, faites un clic droit et choisissez Quick Fix. Cela mettra à jour les POMS. Une autre façon d'éviter cette erreur est de déclarer les sous-modules dans le pom parent.

Consultez le lien ci-dessous pour plus de détails. http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Example_1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X