J'apprends juste Maven, et cela peut donc être évident, mais je ne trouve pas de moyen simple de répertorier les objectifs associés à chaque phase du cycle de vie maven pour un projet donné.
J'ai vu que les phases du cycle de vie par défaut de Maven et les objectifs par défaut correspondants sont documentés ici . D'après ce que j'ai compris jusqu'à présent, chaque pom.xml peut lier des objectifs supplémentaires à chaque phase du cycle de vie.
Alors, existe-t-il une commande mvn pour déterminer les objectifs qui seront exécutés pour chaque phase du cycle de vie d'un projet donné? Sinon, je suppose que je dois juste regarder dans le pom.xml pour chaque nouveau projet maven pour comprendre cela?
Le
buildplan-maven-plugin
est un excellent outil pour montrer comment les objectifs sont liés à des phases.Vous trouverez ci-dessous des exemples de commandes que vous pouvez exécuter. Les commandes téléchargeront et installeront automatiquement le plugin s'il n'a pas déjà été installé.
Répertorier les objectifs par ordre d'exécution
Objectifs de groupe par phase
Regrouper les objectifs par plugin
Remarques
Par défaut, les objectifs recherchent les tâches qui s'exécuteraient si l'utilisateur était appelé
mvn deploy
. Des phases telles queclean
ne seront pas incluses. Pour inclure plusieurs phases dans la recherche, utilisez labuildplan.tasks
propriété:la source
mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,install,deploy
Un outil qui aide est
mvn help:effective-pom
Il imprimera le POM avec toutes les variables et tous les POM parents développés. Cela aide à comprendre ce que voit Maven. À partir de là, il est assez simple de trouver tous les objectifs supplémentaires (qui ne sont généralement pas si nombreux).Le plus gros problème, ce sont les objectifs implicites (c'est-à-dire lorsqu'un plugin se connecte automatiquement à certaines phases du cycle de vie). Il n'y a pas de moyen facile de les voir sans exécuter Maven. Cela devrait s'améliorer dans Maven 3. Jusque-là, exécutez Maven avec
-X
qui affichera un grand nombre de sorties de débogage plus la phase actuelle et quels plugins sont exécutés.la source
Sinon avec Maven mais en utilisant m2e, vous pouvez le faire en utilisant le bloc de code que vous pouvez utiliser dans un plugin Eclipse:
Regardez la source complète .
Déjà implémenté en:
http://marketplace.eclipse.org/content/phases-and-goals
Il utilise la capacité de m2e à calculer l'association d'objectifs avec des phases. J'essaye également de le résoudre au niveau maven.
la source
J'ai mis la réponse de Chad dans un script (donc je n'ai pas à me souvenir du nom du plugin qui est vraiment long). Mettez-le dans votre dossier ~ / bin / pour pouvoir l'utiliser n'importe où.
la source