Soy nuevo en Maven, tengo un proyecto web basado en Java con Maven configurado en MyEclipse.
Ahora, si modifiqué algún archivo java, ¿debo hacer Run as -> Mvn install
o Mvn package
?
134
de http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
: tome el código compilado y empaquételo en su formato distribuible, como un JAR.
install
: instale el paquete en el repositorio local, para usarlo como dependencia en otros proyectos localmente
Entonces, la respuesta a su pregunta es, depende de si desea instalarlo en su repositorio local. Instalar también ejecutará el paquete porque está más arriba en la pila de la fase objetivo.
deploy
hace. Si lo reemplaza conpackage
, no se implementará en Nexus.mvn install
es la opción que se usa con más frecuencia.mvn package
rara vez se usa, solo si está depurando algún problema con el proceso de compilación de Maven.Ver: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Tenga en cuenta que
mvn package
solo creará un archivo jar.mvn install
hará eso e instalará los archivos jar (y clase, etc.) en los lugares adecuados si otro código depende de esos archivos jar.Yo suelo hacer un
mvn clean install
; esto elimina eltarget
directorio y recrea todos los frascos en esa ubicación.La limpieza ayuda con cosas innecesarias o eliminadas que a veces pueden interferir.
En lugar de depurar (algunas veces) simplemente comienza de nuevo todo el tiempo.
fuente
Desde la referencia de Lifecycle , install ejecutará las pruebas de integración del proyecto, el paquete no.
Si realmente no necesita instalar los artefactos generados, use al menos verificar .
fuente
También debe tener en cuenta que si su proyecto consta de varios módulos que dependen unos de otros, debe usar "instalar" en lugar de "paquete", de lo contrario su compilación fallará, porque cuando use el comando de instalación, el módulo A se empaquetará e implementado en el repositorio local y luego, si el módulo B necesita el módulo A como dependencia, puede acceder a él desde el repositorio local.
fuente
Si está sin el uso de un mando a distancia repositorio (como Artifactory), utilizar el viejo y simple:
mvn clean install
Tema bastante antiguo pero AFAIK, si ejecuta su propio repositorio (por ejemplo: con artefacto) para compartir jar entre su (s) equipo (s), es posible que desee utilizar
mvn clean deploy
en lugar.
De esta manera, su servidor de integración continua puede estar seguro de que todas las dependencias se insertan correctamente en su repositorio remoto. Si se perdió uno, mvn no podrá encontrarlo en su repositorio de m2 local de CI.
fuente
paquete: toma el código compilado y lo empaqueta en su formato distribuible, como un archivo JAR o WAR. instalar: instala el paquete en el repositorio local, para usarlo como dependencia en otros proyectos localmente
fuente
La forma correcta es
mvn package
si hizo las cosas correctamente para la parte central de su compilación, entonces no debería ser necesario instalar sus paquetes en el repositorio local.Además, si usa Travis, puede "almacenar en caché" sus dependencias porque no tocará su
$HOME.m2/repository
suyas si usa el paquete para su propio proyecto.En la práctica, si incluso intentas hacer algo
mvn site
, generalmente debes hacer unmvn install
antes. Hay demasiados errores con cualquierasite
o son numerosos complementos mal mantenidos.fuente
Depende de lo que intente lograr después de cambiar el archivo Java. Hasta que desee probar el proceso de Maven, nunca necesita hacer nada. Eclipse / MyEclipse creará lo que sea necesario y colocará la salida en el lugar apropiado dentro de su proyecto. También puede ejecutarlo o implementarlo (si es un proyecto web, por ejemplo), sin necesidad de hacer nada explícitamente con Maven. Al final, para instalar su proyecto en el repositorio de maven, deberá hacer una instalación de maven. También puede tener otros objetivos expertos que desee ejecutar, que MyEclipse no hará automáticamente.
Como digo, depende de lo que quieras hacer.
fuente