mvn instalación limpia vs implementación vs lanzamiento

132

Estoy aprendiendo Maven, y recientemente hemos necesitado ir más y más. Me gustaría saber la diferencia entre

mvn clean install

mvn release

mvn deploy

Por favor sea lo más descriptivo posible.

myusuf3
fuente

Respuestas:

223

Las fasesclean , instally son deploy fases válidas del ciclo de vida e invocarlas activará todas las fases que las preceden, y los objetivos vinculados a estas fases.

instalación limpia de mvn

Este comando invoca la cleanfase y luego la installfase secuencialmente:

  • clean: elimina archivos generados en tiempo de compilación en el directorio de un proyecto ( targetde forma predeterminada)
  • install: instala el paquete en el repositorio local , para usarlo como dependencia en otros proyectos localmente .

mvn deploy

Este comando invoca la deployfase:

  • deploy: copia el paquete final en el repositorio remoto para compartirlo con otros desarrolladores y proyectos .

lanzamiento mvn

Esta no es una fase válida ni un objetivo, por lo que no hará nada. Pero si se refiere al complemento de lanzamiento de Maven que se usa para automatizar la administración de lanzamientos. La publicación de un proyecto se realiza en dos pasos: preparey perform. Según lo documentado:

La preparación de un lanzamiento pasa por las siguientes fases de lanzamiento:

  • Compruebe que no hay cambios no confirmados en las fuentes.
  • Compruebe que no hay dependencias SNAPSHOT
  • Cambie la versión en los POM de x-SNAPSHOT a una nueva versión (se le pedirá las versiones para usar)
  • Transforme la información SCM en el POM para incluir el destino final de la etiqueta
  • Ejecute las pruebas del proyecto contra los POM modificados para confirmar que todo funciona correctamente
  • Confirmar los POM modificados
  • Etiquete el código en SCM con un nombre de versión (se le solicitará)
  • Cambie la versión de los POM a un nuevo valor y-SNAPSHOT (estos valores también se solicitarán)
  • Confirmar los POM modificados

Y entonces:

Realizar una versión ejecuta las siguientes fases de versión:

  • Pago desde una URL de SCM con etiqueta opcional
  • Ejecute los objetivos predefinidos de Maven para lanzar el proyecto (de forma predeterminada, implementar el despliegue del sitio)

Ver también

Pascal Thivent
fuente
1
¿Podría aclarar esto? Esta no es una fase válida ni un objetivo, por lo que no hará nada. Pero si se refiere al complemento de lanzamiento de Maven. Si no es ni una fase ni una meta, ¿cómo lo llamamos?
gvlasov
26
  • mvn installcolocará su proyecto maven empaquetado en el repositorio local , para la aplicación local utilizando su proyecto como una dependencia.
  • mvn release básicamente colocará su código actual en una etiqueta en su SCM, cambiará su versión en sus proyectos.
  • mvn deploycolocará su proyecto maven empaquetado en un repositorio remoto para compartir con otros desarrolladores.

Recursos:

Colin Hebert
fuente