Estoy aprendiendo Maven, por lo que esto puede ser obvio, pero no puedo encontrar una manera fácil de enumerar los objetivos asociados para cada fase del ciclo de vida de Maven para un proyecto determinado.
Vi que las fases del ciclo de vida predeterminado de Maven y los objetivos predeterminados correspondientes están documentados aquí . Hasta ahora tengo entendido que cada pom.xml puede vincular objetivos adicionales a cada fase del ciclo de vida.
Entonces, ¿existe un comando mvn para determinar los objetivos que se ejecutarán para cada fase del ciclo de vida de un proyecto determinado? Si no es así, supongo que solo tengo que revisar el pom.xml de cada nuevo proyecto de maven para resolver esto.
El
buildplan-maven-plugin
es una excelente herramienta para mostrar cómo los objetivos están ligados a las fases.A continuación se muestran ejemplos de comandos que puede ejecutar. Los comandos descargarán e instalarán automáticamente el complemento si aún no se ha instalado.
Enumere los objetivos según el orden en que se ejecutarán
Objetivos de grupo por fase
Objetivos de grupo por complemento
Notas
De forma predeterminada, los objetivos buscan tareas que se ejecutarían si el usuario las invocara
mvn deploy
. Fases comoclean
no se incluirán. Para incluir varias fases en la búsqueda, use labuildplan.tasks
propiedad:fuente
mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,install,deploy
Una herramienta que ayuda es
mvn help:effective-pom
que imprimirá el POM con todas las variables y todos los POM principales expandidos. Esto ayuda a comprender lo que ve Maven. A partir de ahí, es bastante sencillo encontrar todos los objetivos adicionales (que normalmente no son tantos).El mayor problema son los objetivos implícitos (es decir, cuando un complemento se engancha automáticamente a algunas fases del ciclo de vida). No hay una manera fácil de verlos sin ejecutar Maven. Esto debería mejorar en Maven 3. Hasta entonces, ejecute Maven con el
-X
que imprimirá una gran cantidad de resultados de depuración más la fase actual y los complementos que se ejecutan.fuente
Si no es con Maven pero usando m2e, puede hacerlo usando el bloque de código que puede usar en un complemento de Eclipse:
Mira la fuente completa .
Ya implementado en:
http://marketplace.eclipse.org/content/phases-and-goals
Hace uso de la capacidad de m2e para calcular la asociación de metas con fases. También estoy tratando de resolverlo a nivel experto.
fuente
Puse la respuesta de Chad en un script (para no tener que recordar el nombre del complemento, que es muy largo). Ponlo en tu carpeta ~ / bin / para que puedas usarlo en cualquier lugar.
fuente