web-dev-qa-db-fra.com

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

Je suis nouveau chez Maven et j'utilise le tutoriel maven.Apache.orgici en guise d'introduction.

Dans la section "Comment puis-je créer mon premier projet Maven??}" Du didacticiel, nous apprenons à générer un projet archétype Maven en exécutant la commande suivante:

mvn archetype:generate

Après le téléchargement de nombreux artefacts par Maven, 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 didacticiel Apache ne décrit pas cette invite.

J'ai deux questions:

1. Quelle est la question posée ci-dessus? Comment faut-il y répondre pour que le processus mvn archetype:generate continue?

2. Classiquement, est-ce que les gens utilisent mvn archetype:generate pour créer un projet Maven?

--------------Mettre à jour---------------------

En ce qui concerne ma première question, j'ai appuyé sur "Entrée" sans entrer 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 entré "1" dans le cas ci-dessus, puis j'ai eu les choses suivantes:

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

Comment puis-je les définir?

41
Mellon

La commande 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 projets. 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. Répertorie tous les archétypes pouvant ê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 archetype, qui crée en principe un projet maven Hello World avec des classes source et test. Si vous voulez créer un projet simple, vous pouvez simplement appuyer sur Entrée pour continuer. Si vous souhaitez créer un type d'application spécifique, vous devez rechercher le type d'archétype correspondant à vos besoins, entrer le numéro de cet archétype, puis appuyer sur la touche Entrée. Par exemple. Si vous voulez créer un projet webapp, vous pouvez entrer 153 (c'est le numéro actuel de cet archétype, il peut changer dans le temps.)
  4. Comme les archétypes sont des modèles et qu’ils ont l’intention de refléter les meilleures pratiques actuelles, ils peuvent évoluer dans le temps, ils ont donc leur propre version. Maven vous demandera quelle version de l'archétype vous souhaitez utiliser. Par défaut, Maven choisit la dernière version pour vous. donc si vous acceptez d'utiliser la dernière version d'un archétype, appuyez simplement sur Entrée à cette étape;
  5. Chaque projet (et module) maven a son groupId, artifactId et sa version. Maven vous les demandera ensuite en trois étapes. groupId: Ceci est généralement unique parmi une organisation ou un projet. artifactId: artifactId est généralement le nom sous lequel le projet est connu. version: Ceci est la dernière pièce du puzzle de nommage. ( en lire plus )
  6. Enfin, maven vous demandera la structure de paquet pour votre code. Une bonne pratique consiste à créer une structure de dossiers reflétant l'ID de groupe. Maven le définit par défaut, mais vous êtes libre de le modifier.

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

Vous pouvez également consulter le site d’utilisation de maven-archetype-plugin .

40
melihcelik

Il vous demande quel archétype vous souhaitez utiliser pour créer votre projet. Si vous appuyez sur "entrer" à cette invite, vous obtiendrez une liste des choix disponibles. Vous pouvez utiliser maven-archetype-quickstart pour créer simplement un projet simple (il peut vous inviter à choisir un référentiel après cela, dans ce cas, entrez simplement le numéro qui correspond au premier référentiel répertorié après avoir entré ceci).

Pour répondre à votre autre question: oui, l’utilisation d’un archétype est un moyen courant de configurer un nouveau projet. Principalement parce qu’il existe de nombreux archétypes pour tous types de projets/modules. Une fois que vous savez quel archétype vous voulez, son utilisation pour amorcer un projet est le moyen le plus simple de commencer.

4
Chris

Un rapide coup d’œil au didacticiel révèle que vous avez omis certains paramètres de 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 Entrée, vous avez accepté la suggestion du plugin Archetype et choisissez # 149. Cet archétype existe en différentes versions et normalement, comme l'a dit Chris, vous pouvez choisir la dernière - ici 1.1.

Deuxième question: puisqu'un archétype est une sorte de modèle qui peut vous épargner beaucoup de travail: Oui, c'est courant. Mais pas le seul moyen - vous pouvez toujours commencer avec un projet vide.

1
Jan

Vous pouvez également utiliser le formulaire court 

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 aurez plusieurs suggestions s'il y a plus d'un candidat. Vous devrez donc les choisir en entrant l’index affiché dans la liste de choix. 

Consultez maven website for more! 

0
Picrochole