41 votes

Comment créer un projet en utilisant maven-archetype-plugin ? Qu'est-ce que l'artefactId, etc.

Je suis novice en matière de Maven et j'utilise l'outil maven.apache.org tutoriel ici en guise d'introduction.

Dans le " Comment créer mon premier projet Maven ? Dans la section "Maven" du tutoriel, nous apprenons à générer un projet d'archétype Maven en exécutant la commande suivante :

mvn archetype:generate

Après que Maven a téléchargé de nombreux artefacts, il s'est soudainement arrêté et a posé la question suivante sur la ligne de commande :

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149:

Le tutoriel d'Apache ne décrit pas cette invite.

J'ai deux questions à poser :

1. Que demande la question ci-dessus ? Comment y répondre de manière à ce que le mvn archetype:generate se poursuit ?

2. Conventionnellement, les personnes utilisent-elles mvn archetype:generate pour créer un projet Maven ?

--------------Update---------------------

En ce qui concerne ma première question, j'ai appuyé sur "enter" sans saisir de valeur et j'ai obtenu le résultat suivant :

Choose version: 
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: 

Qu'est-ce que c'est ?

J'ai saisi "1" dans le cas ci-dessus, et j'ai obtenu les résultats suivants :

Define value for property 'package':  : :
Define value for property 'groupId': : 
Define value for property 'artifactId': :
...

Comment les définir ?

40voto

melihcelik Points 2411

mvn archetype:generate permet de créer un projet à partir d'un modèle existant. Il existe plusieurs archétypes définis par de nombreux développeurs et groupes de projet. Lorsque vous exécutez la commande, maven effectue les opérations suivantes :

  1. Télécharge la dernière version de maven-archetype-plugin.
  2. Liste tous les archétypes qui peuvent être utilisés pour créer un projet. Si vous avez défini un archétype lors de l'appel de la commande, maven passe à l'étape 4.
  3. Par défaut, maven choisit maven-archetype-quickstart qui permet de créer un fichier maven Bonjour le monde avec les classes source et test. Si vous souhaitez créer un projet simple, il vous suffit d'appuyer sur la touche Entrée pour continuer. Si vous souhaitez créer un type d'application spécifique, vous devez trouver l'archétype correspondant à vos besoins et entrer le numéro de cet archétype, puis appuyer sur Entrée. Par exemple, si vous souhaitez créer un projet webapp, vous pouvez saisir 153 (il s'agit du numéro actuel de cet archétype, qui peut changer avec le temps).
  4. Étant donné que les archétypes sont des modèles et qu'ils visent à refléter les meilleures pratiques actuelles, ils peuvent évoluer dans le temps et ont donc leurs propres versions. Maven vous demandera quelle version de l'archétype vous souhaitez utiliser. Par défaut, Maven choisit la dernière version pour vous. Ainsi, si vous acceptez d'utiliser la dernière version d'un archétype, appuyez simplement sur Entrée à cette étape ;
  5. Chaque projet maven (et module) a son groupId, son artifactId et sa version. Maven vous demandera ces informations en trois étapes. groupId : Il est généralement unique au sein d'une organisation ou d'un projet. artifactId : L'artifactId est généralement le nom sous lequel le projet est connu. version : C'est la dernière pièce du puzzle du nommage.( en savoir plus )
  6. Enfin, maven vous demandera la structure du paquet pour votre code. Une bonne pratique consiste à créer une structure de dossier qui reflète le groupId. Maven définit donc cette structure par défaut, mais vous êtes libre de la modifier.

Après avoir saisi ces informations, Maven vous montrera toutes les informations que vous avez saisies et vous demandera de vérifier la création du projet. Si vous appuyez sur Y puis sur enter, voilà que votre projet est créé avec l'artefact et les paramètres que vous avez choisis.

Vous pouvez également lire maven-archetype-plugin Le site d'utilisation du site.

4voto

Chris Points 10237

Il vous demande quel archétype vous souhaitez utiliser pour lancer votre projet. Si vous appuyez sur "enter" à cette invite, vous obtiendrez une liste des choix possibles. Vous pouvez utiliser maven-archetype-quickstart pour créer un projet simple (il se peut que l'on vous demande de choisir un référentiel après cela, dans ce cas, entrez simplement le numéro qui correspond au premier référentiel listé après que vous ayez entré ceci).

Pour répondre à votre autre question : oui, l'utilisation d'un archétype est une méthode courante pour mettre en place un nouveau projet. Principalement parce qu'il existe de nombreux archétypes pour toutes sortes de projets/modules. Une fois que vous savez quel archétype vous voulez, l'utiliser pour démarrer un projet est la façon la plus simple de commencer.

1voto

Jan Points 591

Un rapide coup d'œil au tutoriel révèle que vous avez omis certains paramètres à la commande archetype:generate. C'est pourquoi il ne sait pas quel archétype choisir pour générer votre projet de tutoriel et vous présente tous les archétypes disponibles (149).

Première question : En appuyant sur la touche retour, vous avez accepté la suggestion du plugin d'archétype et choisi le n° 149. Cet archétype existe en différentes versions et normalement, comme le dit Chris, il est bon de choisir la dernière - ici 1.1.

Deuxième question : Un archétype est une sorte de modèle qui peut vous épargner beaucoup de travail : Oui, c'est courant. Mais ce n'est pas la seule façon - vous pouvez toujours commencer avec un projet vide.

0voto

Vous pouvez également utiliser la forme abrégée

mvn archetype:generate -Dfilter=org.example.group:example-artifact

Ou même seulement un groupe :

mvn archetype:generate -Dfilter=org.example.group:

Vous obtiendrez l'artefact suivant (dans le premier cas) s'il existe dans un catalogue configuré :

<groupId>org.example.group</groupId>
<artifactId>example-artifact</artifactId>

Ou vous obtiendrez plusieurs suggestions s'il y a plus d'un candidat. Vous devrez alors les choisir en saisissant l'index affiché dans la liste de choix.

Consulter maven site web pour en savoir plus !

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