¿En qué se diferencian el "paquete mvn clean" y la "instalación mvn clean"?

Resuelto asked hace 11 años • 0 respuestas

¿Cuáles son exactamente las diferencias entre mvn clean packagey mvn clean install? Cuando ejecuto ambos comandos, ambos parecen hacer lo mismo.

 avatar May 17 '13 12:05
Aceptado

Bueno, ambos limpiarán. Eso significa que eliminarán la carpeta de destino. La verdadera pregunta es ¿cuál es la diferencia entre paquete e instalación?

packagecompilará su código y también lo empaquetará. Por ejemplo, si su pom dice que el proyecto es un jar, creará un jar para usted cuando lo empaquete y lo coloque en algún lugar del directorio de destino (de forma predeterminada).

installcompilará y empaquetará, pero también colocará el paquete en su repositorio local. Esto hará que otros proyectos puedan consultarlo y obtenerlo de su repositorio local.

Documentación

Daniel Kaplan avatar May 17 '2013 05:05 Daniel Kaplan

Lo que hace clean (común en ambos comandos): elimina todos los archivos generados por la compilación anterior.


Al llegar a la diferencia entre el paquete de comandos y la instalación , primero debe comprender el ciclo de vida de un proyecto maven.


Estas son las fases del ciclo de vida predeterminadas en maven

  • 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 empaquetelo en su formato distribuible, como un JAR.
  • verificar : ejecutar 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 : realizado en el entorno de compilación, copia el paquete final en el repositorio remoto para compartirlo con otros desarrolladores y proyectos.

El funcionamiento de Maven es que, si ejecuta un comando para cualquiera de las fases del ciclo de vida, ejecuta cada fase predeterminada del ciclo de vida en orden, antes de ejecutar el comando en sí.

orden de ejecución

validar >> compilar >> probar (opcional) >> paquete >> verificar >> instalar >> implementar

Entonces, cuando ejecuta el comando mvn package , ejecuta los comandos para todas las fases del ciclo de vida hasta el paquete

validar >> compilar >> probar (opcional) >> paquete

Y en cuanto a mvn install , ejecuta los comandos para todas las fases del ciclo de vida hasta la instalación, que también incluye el paquete.

validar >> compilar >> probar (opcional) >> paquete >> verificar >> instalar


Entonces, efectivamente lo que significa es que los comandos de instalación hacen todo lo que hace el comando del paquete y algo más (instalar el paquete en el repositorio local, para usarlo como una dependencia en otros proyectos localmente).

Fuente: referencia del ciclo de vida de Maven

Ketan R avatar Apr 12 '2019 06:04 Ketan R

El paquete generará Jar/war según el archivo POM. install instalará el archivo jar generado en el repositorio local para otras dependencias, si las hay.

La fase de instalación viene después de la fase del paquete.

Abdul Gafoor avatar Jul 06 '2017 08:07 Abdul Gafoor

packageAgregará el paquete jaro wara su targetcarpeta. Podemos verificarlo cuando vacíemos la carpeta de destino (usando mvn clean) y luego ejecutemos mvn package.
installhará todas las cosas que hace, además , también packageagregará paquetes jaro en el repositorio local. warPodemos confirmarlo revisando su .m2carpeta.

Nisarg Patil avatar Oct 15 '2018 13:10 Nisarg Patil