¿En qué se diferencia "mvn clean install "de"mvn install"?


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

Author: hichris123, 2011-05-16

5 answers

clean es su propia fase del ciclo de vida de compilación (que puede considerarse como una acción o tarea) en Maven. mvn clean install le dice a Maven que haga la fase clean en cada módulo antes de ejecutar la fase install para cada módulo.

Lo que esto hace es borrar cualquier archivo compilado que tenga, asegurándose de que realmente está compilando cada módulo desde cero.

 158
Author: Powerlord,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-25 00:44:36

Maven le permite especificar objetivos o fases del ciclo de vida en la línea de comandos (o ambos).

clean y installson dos fases diferentes del ciclo de vida, a las que diferentes ejecuciones de complementos están vinculadas (ya sea por defecto o explícitamente en su pom.xml)

La fase clean, por convención, está destinada a hacer una compilación reproducible, es decir, limpia todo lo que fue creado por compilaciones anteriores. En la mayoría de los casos lo hace llamando clean:clean, que elimina el directorio enlazado a ${project.build.directory} (normalmente llamado "target")

 40
Author: Sean Patrick Floyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 15:16:22

Puedes llamar a más de un objetivo target con maven. mvn clean install llama a clean primero, luego a install. Debe limpiar manualmente, porque clean no es un objetivo estándar target y no se ejecuta automáticamente en cada instalación.

clean elimina la carpeta de destino: elimina todos los archivos de clase, los documentos de Java, los jars, los informes, etc. Si no lo hace clean, entonces maven solo "hará lo que se tiene que hacer", como si no compilara clases cuando los archivos fuente correspondientes no lo hayan hecho cambiado (en breve).

lo llamamos meta en ant y meta en maven

 28
Author: Andreas_D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 14:33:43

Para seguir con los términos Maven:

  • "limpiar" es una fase de la limpieza ciclo de vida
  • "instalar" es una fase de la ciclo de vida predeterminado

Http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

 21
Author: Puce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 14:31:34

Lo mismo ocurre con @Andreas_D, además si dices actualizar la primavera de 1 versión a otra en tu proyecto sin hacer una limpieza, terminarás con ambas en tu artefacto. Me encontré con esto mucho al hacer el desarrollo Flex con Maven.

 2
Author: mezmo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 14:28:33