Liste de tous les objectifs possibles dans Maven 2?

105

Je suis nouveau à Maven, venant du monde des fourmis.

Est-il possible de lister tous les objectifs possibles (y compris, par exemple, tous les plugins) que vous pouvez exécuter?

Je peux voir qu'il y avait un -gdrapeau dans Maven 1, mais ce n'est pas disponible dans la version 2.

Noel M
la source
4
Cela me rend fou que maven ne puisse pas répondre à cette question sans pages de xml! Bon produit!
Kieveli
1
Possible duplication de Comment afficher une liste des objectifs disponibles?
200_success

Réponses:

120

L'objectif que vous indiquez dans la ligne de commande est lié au cycle de vie de Maven. Par exemple, le buildcycle de vie (vous avez également les cycles de vie cleanet sitequi sont différents) est composé des phases suivantes:

  • validate: valider que le projet est correct et que toutes les informations nécessaires sont disponibles.
  • compile: compilez le code source du projet.
  • test: testez le code source compilé à l'aide d'un cadre de test unitaire approprié. Ces tests ne devraient pas exiger que le code soit empaqueté ou déployé.
  • package: prenez le code compilé et conditionnez-le dans son format distribuable, tel qu'un JAR.
  • integration-test: traitez et déployez le package si nécessaire dans un environnement où des tests d'intégration peuvent être exécutés.
  • verify: exécutez tous les contrôles pour vérifier que le colis est valide et répond aux critères de qualité
  • install: installez le package dans le référentiel local, pour une utilisation en tant que dépendance dans d'autres projets localement.
  • deploy: effectué dans un environnement d'intégration ou de version, copie le package final dans le référentiel distant pour le partager avec d'autres développeurs et projets.

Vous pouvez trouver la liste des plugins "core" ici , mais il y en a beaucoup d'autres, comme ceux de codehaus, ici .

Romain Linsolas
la source
1
jetez un œil à la référence du cycle de vie. Toutes les pièces du cycle de vie y sont répertoriées.
Salandur
51

Est-il possible de lister tous les objectifs possibles (y compris, par exemple, tous les plugins) qu'il est possible d'exécuter?

Maven n'a rien de intégré pour cela, bien que la liste des phases soit finie (la liste des objectifs du plugin ne l'est pas puisque la liste des plugins ne l'est pas).

Mais vous pouvez faciliter les choses et tirer parti de la puissance de la complétion bash (en utilisant cygwin si vous êtes sous Windows) comme décrit dans le Guide de la complétion automatique Maven 2.x à l'aide de BASH (mais avant de choisir le script de ce guide, lisez plus loin ).

Pour que les choses fonctionnent, suivez d'abord ce guide pour configurer l'achèvement de bash sur votre ordinateur. Ensuite, il est temps d'obtenir un script pour Maven2 et:

  • Bien que vous puissiez utiliser celui du mini guide
  • Pendant que vous utilisez une version améliorée attachée à MNG-3928
  • Bien que vous puissiez utiliser des scripts aléatoires trouvés sur le net (voir les ressources si vous êtes curieux)
  • J'utilise personnellement le script Bash Completion du PPA de Ludovic Claude (qui est inclus dans la version packagée d' mavenUbuntu) que vous pouvez télécharger à partir de HEAD. C'est tout simplement le meilleur .

Ci-dessous, voici ce que j'obtiens juste pour illustrer le résultat:

$ mvn [tab] [tab]
 Afficher les 377 possibilités? (o ou n)
fourmi: fourmi 
fourmi: propre 
fourmi: aide 
antrun: aide 
antrun: courir 
archétype: crawl 
archétype: créer 
archétype: créer à partir d'un projet 
archétype: générer 
archétype: aide 
assemblage: assemblage 
assembly: répertoire 
assembly: répertoire unique 
assemblage: aide 
assemblage: unique  
... 

Bien sûr, je ne parcours jamais les 377 possibilités, j'utilise la complétion. Mais cela vous donne une idée de la taille d'une liste "a" :)

Ressources

Pascal Thivent
la source
2
Je ne l'ai pas encore regardé, mais le nouvel Maven Shelloutil fournit-il une complétion automatique, qui pourrait être utile ici?
Romain Linsolas
2
@romain Non, mvnshne fournit pas la complétion (du moins pas dans la version que j'ai sur ma machine). J'ai vérifié avant de répondre :)
Pascal Thivent
7

Si vous utilisez IntelliJ IDEA, vous pouvez parcourir tous les objectifs / tâches maven (y compris les plugins) dans l' Maven Projectsonglet:

Projets Maven

Denis Kniazhev
la source
2
Je voudrais faire cela via une commande. Comment IntelliJ IDEA le fait-il?
nacho4d
0

Rendons les choses très simples:

Cycles de vie Maven: 1. Nettoyer 2. Par défaut (build) 3. Site

Phases Maven du cycle de vie par défaut: 1. Valider 2. Compiler 3. Test 4. Package 5. Vérifier 6. Installer 7. Déployer

Remarque: ne pas mélanger ou confondre les objectifs maven avec le cycle de vie maven.

Voir les principes de base du cycle de vie de Maven Build 1

Nash
la source
0

Un cycle de vie de construction est composé de phases

Chacun de ces cycles de vie de construction est défini par une liste différente de phases de construction, une phase de construction représentant une étape du cycle de vie.

Par exemple, le cycle de vie par défaut comprend les phases suivantes (pour une liste complète des phases du cycle de vie, reportez-vous au Lifecycle Reference):

  • valider - valider que le projet est correct et que toutes les informations nécessaires sont disponibles
  • compile - compile le code source du projet
  • test - testez le code source compilé à l'aide d'un cadre de test unitaire approprié. Ces tests ne devraient pas exiger que le code soit empaqueté ou déployé
  • package - prenez le code compilé et empaquetez-le dans son format distribuable, tel qu'un JAR. vérifier - exécuter toutes les vérifications des résultats des tests d'intégration pour s'assurer que les critères de qualité sont respectés
  • install - installe le package dans le référentiel local, pour une utilisation en tant que dépendance dans d'autres projets localement
  • deploy - fait dans l'environnement de construction, copie le package final dans le référentiel distant pour le partager avec d'autres développeurs et projets.

Ces phases du cycle de vie (ainsi que les autres phases du cycle de vie non illustrées ici) sont exécutées séquentiellement pour terminer le cycle de vie par défaut. Compte tenu des phases du cycle de vie ci-dessus, cela signifie que lorsque le cycle de vie par défaut est utilisé, Maven va d'abord valider le projet, puis essaiera de compiler les sources, exécutera celles-ci contre les tests, empaquetera les binaires (par exemple jar), exécutera des tests d'intégration par rapport à cela package, vérifiez les tests d'intégration, installez le package vérifié dans le référentiel local, puis déployez le package installé dans un référentiel distant.

Source: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Aguid
la source