Un paquete (lo construye en el destino) y en las instalaciones (lo empaqueta y lo coloca en su repositorio). Debe hacer lo posterior si desea utilizar esta versión en otro módulo.
Peter Lawrey
3
Quizás esto debería ser reabierto? Es perfectamente posible responder y no me resultó difícil responder. Además, si alguien es nuevo en Maven, es fácil ver cómo las dos fases parecen hacer lo mismo. Lo editaré en un intento de hacerlo menos vago.
Daniel Kaplan
Respuestas:
371
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.
¿Por qué mvn se instala más rápido que el paquete mvn?
lostintranslation
9
@SharadHolani porque las compilaciones son incrementales. mvn clean installNo es más rápido que mvn package.
OrangeDog
Para mi proyecto, el ensamblaje del paquete mvn: single que construye el tarro gordo lleva más tiempo que una instalación mvn. ¿Empaquetar e instalar ambos construir tarros de grasa equivalentes?
lostintranslation
1
@RakeshYadav sí, lo hace
Daniel Kaplan
116
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
validar : validar que el proyecto es correcto y 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 de unidad adecuado. Estas pruebas no deberían requerir que el código se empaquete o implemente
paquete : tome el código compilado y empaquételo 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 dependencia en otros proyectos localmente
despliegue : hecho 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í.
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)
Esto debe marcarse como respuesta aceptada. Esto define claramente y ayuda al OP a comprender cuáles son las diferentes fases del ciclo de vida de Maven y por qué mvn install incluye mvn package pero no al revés.
Jasmeet Singh
1
Maven en pocas palabras, ¡genial!
CodeSlave
19
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
primero se realizará el empaque y luego se instalarán esos paquetes (jar / war).
Abdul Gafoor
1
"La fase de instalación sigue a la fase del paquete". La forma en que está redactada actualmente es al revés. "Seguido por" significa "después".
Charles Wood
11
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.
¿Qué quieres decir con "y finalmente instalar el proyecto localmente para otros proyectos dependientes"
Arun Gowda
2
@ArunGowda significa que en el .m2 que se crea en su sistema al instalar el maven se agregará con los proyectos que está empaquetando y estará disponible para otros proyectos como dependencia.
JAVA
una imagen son 1000 palabras, ¿alguien tiene un diagrama?
@MrCholo mvn install colocará el jar / war en tu repositorio maven. El lugar donde se almacenan todas sus dependencias de Maven, generalmente ~ / .m2
brt
6
packageagregará empaquetado jaro wara su targetcarpeta, podemos verificarlo cuando, vaciemos la carpeta de destino (usando mvn clean) y luego la ejecutemos mvn package.
installhará todo lo que packagehace, además agregará paquetes jaro también waren el repositorio local. Podemos confirmarlo ingresando en su .m2carpeta.
package
yinstall
.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.Documentación
fuente
mvn clean install
No es más rápido quemvn 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
Entonces, cuando ejecuta el comando mvn package , ejecuta los comandos para todas las fases del ciclo de vida hasta el 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
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)
Fuente: referencia del ciclo de vida de Maven
fuente
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
fuente
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
fuente
package
agregará empaquetadojar
owar
a sutarget
carpeta, podemos verificarlo cuando, vaciemos la carpeta de destino (usandomvn clean
) y luego la ejecutemosmvn package
.install
hará todo lo quepackage
hace, además agregará paquetesjar
o tambiénwar
en el repositorio local. Podemos confirmarlo ingresando en su.m2
carpeta.fuente