¿Cuáles son exactamente las diferencias entre mvn clean package
y mvn clean install
? Cuando ejecuto estos dos comandos, ambos parecen hacer lo mismo.
¿Cuáles son exactamente las diferencias entre mvn clean package
y mvn clean install
? Cuando ejecuto estos dos comandos, ambos parecen hacer lo mismo.
Respuestas:
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?
package
compilará 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).
install
compilará 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.
mvn clean install
No es más rápido que mvn package
.
Qué limpieza hace (común en ambos comandos): elimina todos los archivos generados por la compilación anterior
Para 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 predeterminadas del ciclo de vida en maven
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 >> prueba (opcional) >> paquete >> verificar >> instalar >> desplegar
Entonces, cuando ejecuta el comando mvn package , ejecuta los comandos para todas las fases del ciclo de vida hasta el paquete
validar >> compilar >> prueba (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 >> prueba (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 (instale el paquete en el repositorio local, para usarlo como dependencia en otros proyectos localmente)
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
Empaquetar e instalar son varias fases en el ciclo de vida de construcción de Maven. la fase de paquete ejecutará todas las fases antes de eso y se detendrá con el empaquetado del proyecto como un frasco. Del mismo modo, la fase de instalación ejecutará todas las fases anteriores y finalmente instalará el proyecto localmente para otros proyectos dependientes.
Para comprender el ciclo de vida de la construcción de Maven, visite el siguiente enlace https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
agregará empaquetado jar
o war
a su target
carpeta, podemos verificarlo cuando, vaciemos la carpeta de destino (usando mvn clean
) y luego la ejecutemos mvn package
.
install
hará todo lo que package
hace, además agregará paquetes jar
o también war
en el repositorio local. Podemos confirmarlo ingresando en su .m2
carpeta.
package
yinstall
.