2012-05-10 19 views
102

Acabo de empezar a usar Maven y me dijeron que hiciera mvn install en un directorio específico.¿Qué hace mvn instalar en maven exactamente?

¿Qué significa mvn install exactamente?

Creo que busca pom.xml en la carpeta actual y comienza a seguir las instrucciones especificadas en ese archivo. ¿Es eso correcto?

+1

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html –

Respuesta

68

como se podría tener en cuenta, Maven es una automatización de acumulación herramienta proporcionada por Apache que más hace la gestión de la dependencia. podemos convertirlo en un par de Ant y Makefile que elimina todas las dependencias requeridas.

En una mvn install, que enmarca un árbol de dependencia basado en la configuración del proyecto pom.xml en todos los sub-proyectos bajo el súper pom.xml (POM raíz) y descargas/compila todos los componentes necesarios en un directorio llamado .m2 bajo la carpeta del usuario . Estas dependencias tendrán que resolverse para que el proyecto se construya sin ningún error y mvn install es una utilidad que podría reducir la mayoría de las dependencias.

Además, hay otros utils con en maven como dependency:resolve que se utilizarán por separado en casos específicos. El ciclo de vida de construcción de la MVN es la siguiente:

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

La fase de prueba de este mvn puede ser ignorado por el uso de una bandera -DskipTests=true.

+2

Como nota al margen, si desea omitir todos los objetivos relacionados con las pruebas, use: -Dmaven.test.skip = true (en lugar de -DskipTests = true) –

26

¿Ha consultado alguno de los documentos de Maven, por ejemplo, el maven install plugin docs?

Versión Nutshell: construirá el proyecto e instalará en su repositorio local.

+0

Digamos que ejecuta "mvn install" en una biblioteca de código abierto. Luego, ejecuta "mvn install" en un proyecto que usa la biblioteca de código abierto que compilamos por primera vez. Al ejecutar "mvn install", ¿se buscarán primero los JAR en el repositorio local? ¿O depende del archivo POM? –

+1

@Kevin Debería ser local primero, ya que ese es el punto. Si no está en el repositorio local, buscará en los repositorios que haya configurado (o los valores predeterminados) e instalará en su repositorio local si se encuentra. Sospecho que podrías configurarlo para omitir siempre el repositorio local, aunque no sé cómo hacerlo sin buscarlo. –

+12

¿Han * * visto los documentos canónicos de Maven? El sitio de Apache explica el propósito de mvn install así: "En la mayoría de los casos, instalar: el objetivo de instalación no necesita ninguna configuración, necesita el POM del proyecto y el archivo de artefactos que se instalará durante la fase de instalación del ciclo de vida de compilación predeterminado". Es porque el documento de Apache no explica qué es lo que 'mvn install' hace que a la gente le guste el póster, y yo mismo, esté buscando la respuesta. Pregunta perfectamente razonable. – bethesdaboys

1

-DskipTests=true es la forma corta de -Dmaven.test.skip=true

hacer cambios en setting.xml en su carpeta .m2. Puede usar el enlace al repositorio local para que los frascos que se bajaron una vez no se descarguen una y otra vez.

<url>file://C:/Users/admin/.m2/repository</url> 
</repository> 
1

El objetivo install:install es proporcionada por «Apache Maven Instalar Plugin»:

Apache Maven instalar el plugin

El instalar el plugin se utiliza durante la fase de instalación para instalar el artefacto (s) a el repositorio local. El complemento de instalación utiliza la información en el POM (groupId, artifactId, version) para determinar la ubicación correcta para el artefacto dentro del repositorio local.

El repositorio local es la memoria caché local donde se almacenan todos los artefactos necesarios para la compilación. De forma predeterminada, se encuentra dentro del directorio de inicio del usuario (~/.m2/repository), pero la ubicación se puede configurar en ~/.m2/settings.xml utilizando el elemento <localRepository>.

- Apache Maven Install Plugin - Introduction.

Una vez dicho esto, el propósito meta exacta:

install:install se utiliza para instalar automáticamente el artefacto principal del proyecto (el JAR, WAR o EAR), su POM y los artefactos conectados (fuentes, javadoc , etc.) producido por un proyecto en particular.

- Apache Maven Install Plugin - Introduction.

Para obtener detalles adicionales sobre el objetivo, consulte la página Apache Maven Install Plugin - install:install.

Para obtener más información sobre el ciclo de vida de la compilación en general y sobre el lugar que ocupa el objetivo en el ciclo de vida de la compilación, consulte la página Maven – Introduction to the Build Lifecycle.

Cuestiones relacionadas