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 installo 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.
deployhace. Si lo reemplaza conpackage, no se implementará en Nexus.mvn installes la opción que se usa con más frecuencia.mvn packagerara 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 packagesolo creará un archivo jar.mvn installhará 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 eltargetdirectorio 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 installTema 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 deployen 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 packagesi 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/repositorysuyas si usa el paquete para su propio proyecto.En la práctica, si incluso intentas hacer algo
mvn site, generalmente debes hacer unmvn installantes. Hay demasiados errores con cualquierasiteo 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