Repaso
English

¿Cuál es la diferencia entre mvn package y mvn install?

Opciones

  1. No hay diferencia entre ellos en los builds de Maven
  2. package crea el JAR; install además lo copia a ~/.m2 (Opción correcta)
  3. install elimina el JAR de target/ tras construir
  4. package sube el JAR al repositorio de internet

Respuesta

package construye el JAR en target/; install además lo copia a tu repositorio Maven local (~/.m2) para que otros proyectos locales puedan depender de él

Por qué

Ambos compilan, prueban y empaquetan. mvn package se detiene tras crear el JAR o WAR en la carpeta target/.

mvn install va más allá y copia el artefacto al repositorio local (~/.m2/repository), para que otros proyectos de tu máquina lo usen como dependencia.

mvn deploy va aún más lejos y lo sube a un repositorio remoto compartido (Nexus, Artifactory) para tu equipo.

Un comando común de cada día es mvn clean install.

mvn clean install          # delete target/, build, test, install locally
mvn clean package -DskipTests   # build without running tests

Recuerda

package = JAR en target. install = + repo local. deploy = + repo remoto.

Términos clave

Practica esta pregunta en Repaso