¿Enumerar todos los posibles objetivos en Maven 2?

105

Soy nuevo en Maven, vengo del mundo Ant.

¿Es posible enumerar todos los objetivos posibles (incluidos, por ejemplo, todos los complementos) que puede ejecutar?

Puedo ver que solía haber una -gbandera en Maven 1, pero esto no está disponible en la versión 2.

Noel M
fuente
4
¡Me vuelve loco que Maven no pueda responder esta pregunta sin páginas de xml! ¡Buen material!
Kieveli
1
Posible duplicado de ¿Cómo mostrar una lista de objetivos disponibles?
200_success

Respuestas:

120

El objetivo que indica en la línea de comando está vinculado al ciclo de vida de Maven. Por ejemplo, el buildciclo de vida (también tiene ciclos de vida cleany siteque son diferentes) se compone de las siguientes fases:

  • validate: validar que el proyecto sea correcto y que toda la información necesaria esté disponible.
  • compile: compila el código fuente del proyecto.
  • test: pruebe el código fuente compilado utilizando un marco de prueba unitario adecuado. Estas pruebas no deberían requerir que el código esté empaquetado o implementado.
  • package: tomar el código compilado y empaquetarlo en su formato distribuible, como un JAR.
  • integration-test: procese e implemente el paquete si es necesario en un entorno donde se puedan ejecutar pruebas de integración.
  • verify: ejecute cualquier verificación para verificar que el paquete sea válido y cumpla con los criterios de calidad
  • install: instala el paquete en el repositorio local, para usarlo como dependencia en otros proyectos localmente.
  • deploy: hecho en un entorno de integración o lanzamiento, copia el paquete final en el repositorio remoto para compartirlo con otros desarrolladores y proyectos.

Puede encontrar la lista de complementos "principales" aquí , pero hay muchos otros complementos, como los de codehaus, aquí .

Romain Linsolas
fuente
1
eche un vistazo a Lifecycle Reference. Todas las partes del ciclo de vida se enumeran allí.
Salandur
51

¿Es posible enumerar todos los objetivos posibles (incluidos, por ejemplo, todos los complementos) que es posible ejecutar?

Maven no tiene nada incorporado para eso, aunque la lista de fases es finita (la lista de objetivos de complementos no lo es, ya que la lista de complementos no lo es).

Pero puede facilitar las cosas y aprovechar el poder de la finalización de bash (usando cygwin si está en Windows) como se describe en la Guía para la finalización automática de Maven 2.x usando BASH (pero antes de elegir el script de esta guía, lea más ).

Para que todo funcione, primero siga esta guía para configurar la finalización de bash en su computadora. Entonces, es hora de obtener un guión para Maven2 y:

  • Si bien puedes usar el de la mini guía
  • Mientras usa una versión mejorada adjunta a MNG-3928
  • Si bien puede usar scripts aleatorios que se encuentran en la red (consulte los recursos si tiene curiosidad)
  • Yo personalmente uso el script Bash Completion del PPA de Ludovic Claude (que está incluido en la versión empaquetada de mavenUbuntu) que puede descargar desde HEAD. Es simplemente el mejor .

A continuación, esto es lo que obtengo solo para ilustrar el resultado:

$ mvn [tab] [tab] ¿
 Mostrar las 377 posibilidades? (sí o n)
hormiga: hormiga 
hormiga: limpia 
hormiga: ayuda 
antrun: ayuda 
antrun: ejecutar 
arquetipo: gatear 
arquetipo: crear 
arquetipo: crear-desde-proyecto 
arquetipo: generar 
arquetipo: ayuda 
montaje: montaje 
ensamblaje: directorio 
ensamblaje: directorio único 
montaje: ayuda 
montaje: individual  
... 

Por supuesto, nunca examino las 377 posibilidades, uso la finalización. Pero esto le da una idea sobre el tamaño de "una" lista :)

Recursos

Pascal Thivent
fuente
2
Todavía no lo he visto, pero ¿la nueva Maven Shellherramienta proporciona una finalización automática que podría ser útil aquí?
Romain Linsolas
2
@romain No, mvnshno proporciona finalización (al menos no en la versión que tengo en mi máquina). Lo verifiqué antes de responder :)
Pascal Thivent
7

Si usa IntelliJ IDEA, puede explorar todos los objetivos / tareas de maven (incluidos los complementos) en la Maven Projectspestaña:

Proyectos Maven

Denis Kniazhev
fuente
2
Me gustaría hacer esto a través de algún comando. ¿Cómo lo hace IntelliJ IDEA?
nacho4d
0

Hagámoslo muy simple:

Ciclos de vida de Maven: 1. Limpiar 2. Predeterminado (compilación) 3. Sitio

Fases de Maven del ciclo de vida predeterminado: 1. Validar 2. Compilar 3. Probar 4. Empaquetar 5. Verificar 6. Instalar 7. Implementar

Nota: No mezcle ni se confunda con los objetivos de maven con el ciclo de vida de maven.

Consulte los conceptos básicos del ciclo de vida de compilación de Maven 1

Nash
fuente
0

Un ciclo de vida de construcción se compone de fases

Cada uno de estos ciclos de vida de compilación se define mediante una lista diferente de fases de compilación, en la que una fase de compilación representa una etapa del ciclo de vida.

Por ejemplo, el ciclo de vida predeterminado consta de las siguientes fases (para obtener una lista completa de las fases del ciclo de vida, consulte la Referencia del ciclo de vida):

  • validar: validar que el proyecto sea correcto y que toda la información necesaria esté disponible
  • compilar: compila el código fuente del proyecto
  • prueba: prueba el código fuente compilado utilizando un marco de prueba unitario adecuado. Estas pruebas no deberían requerir que el código esté empaquetado o implementado
  • paquete: tome el código compilado y empaquelo en su formato distribuible, como un JAR. verificar: ejecute cualquier verificación de los resultados de las pruebas de integración para garantizar que se cumplan los criterios de calidad
  • instalar: instala el paquete en el repositorio local, para usarlo como una dependencia en otros proyectos localmente
  • implementar: hecho en el entorno de compilación, copia el paquete final en el repositorio remoto para compartirlo con otros desarrolladores y proyectos.

Estas fases del ciclo de vida (más las otras fases del ciclo de vida que no se muestran aquí) se ejecutan secuencialmente para completar el ciclo de vida predeterminado. Dadas las fases del ciclo de vida anteriores, esto significa que cuando se usa el ciclo de vida predeterminado, Maven primero validará el proyecto, luego intentará compilar las fuentes, ejecutarlas contra las pruebas, empaquetar los binarios (por ejemplo, jar), ejecutar pruebas de integración contra eso paquete, verifique las pruebas de integración, instale el paquete verificado en el repositorio local y luego implemente el paquete instalado en un repositorio remoto.

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

Aguid
fuente