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


Respuestas:


214

cleanes su propia fase de ciclo de vida de construcción (que puede considerarse como una acción o tarea) en Maven. mvn clean installle dice a Maven que haga la cleanfase en cada módulo antes de ejecutar la installfase 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.


13
Siempre pensé en instalar, incluyendo limpiar como una de sus fases ... hasta que veo esto
Junchen Liu

14
@shanyangqu Lamentablemente, no. cleanestá en un ciclo de vida separado , por lo que no se llama por defecto.
Powerlord

47

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

cleany installson dos fases diferentes del ciclo de vida , a las que se vinculan diferentes ejecuciones de complementos (ya sea de forma predeterminada o explícitamente en su pom.xml )

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


66
"instalar" no es un ciclo de vida. Es una fase en el ciclo de vida predeterminado. Aunque hay un ciclo de vida "limpio", AFAIK este parámetro especifica la fase "limpia" en el ciclo de vida "limpio", no el ciclo de vida "limpio" en sí.
Puce

1
@Puce cierto, quise decir "Fase", no ciclo de vida
Sean Patrick Floyd

38

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

cleanelimina la carpeta de destino: elimina todos los archivos de clase, los documentos de Java, los frascos, los informes, etc. Si noclean , entonces Maven solo "hará lo que se debe hacer", como si no compilara clases cuando los archivos fuente correspondientes no hayan cambiado (en resumen).

lo llamamos objetivo en hormiga y objetivo en maven


1
Creo que, en este contexto, limpiar e instalar son fases del ciclo de vida, no objetivos.
JL_SO


4

Lo mismo ocurre con @Andreas_D, además si dice actualizar Spring de una versión a otra en su proyecto sin hacer una limpieza, terminará con ambos en su artefacto. Me encontré mucho con esto al desarrollar Flex con Maven.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.