zte smartgsm precio opiniones caracteristicas maven-2

maven 2 - smartgsm - ¿Cuál es la diferencia entre "mvn deploy" en un repositorio local y "mvn install"?



zte maven 2 root (3)

"matt b" tiene razón, pero para ser específicos, el objetivo de "instalación" copia su objetivo incorporado al repositorio local en su sistema de archivos; útil para pequeños cambios en proyectos que actualmente no están destinados para el grupo completo.

El objetivo de "implementación" lo sube a su repositorio compartido para cuando finalice su trabajo, y luego puede ser compartido por otras personas que lo necesiten para su proyecto.

En su caso, parece que "instalar" se usa para facilitar la administración de la implementación, ya que el repositorio local de CI es el repositorio compartido. Si CI estuviera en otra casilla, debería usar el objetivo de "implementación".

Mi equipo usa un repositorio maven interno del equipo que se comparte desde un servidor de desarrollo usando Apache. También ejecutamos el servidor de Continuum CI en la misma máquina. Las compilaciones de Maven en Continuum se ejecutan con el objetivo de "instalación", que copia el artefacto final directamente en el directorio compartido.

La pregunta es, ¿cuál es la diferencia entre agregar archivos al repositorio compartido usando mvn install y usar el objetivo de despliegue (plugin mvn-deploy)?

Me parece que usar mvn deploy crea problemas de configuración adicionales, pero he leído en alguna parte que la instalación de archivos en un repositorio compartido es una mala idea por algún motivo relacionado con el funcionamiento interno de maven.

actualización: obtengo las diferencias funcionales entre implementar e instalar; En realidad, estoy más interesado en los detalles de bajo nivel en términos de qué archivos se crean en el repositorio maven.


Ken, buena pregunta. Debería ser más explícito en The Definitive Guide sobre la diferencia. "instalar" y "implementar" tienen dos propósitos diferentes en una compilación. "instalar" se refiere al proceso de instalación de un artefacto en su repositorio local. "implementación" se refiere al proceso de implementación de un artefacto en un repositorio remoto.

Ejemplo:

  1. Cuando ejecuto un gran proyecto de varios módulos en una máquina, usualmente ejecuto "mvn install". Esto va a instalar todos los artefactos de software binario generados (generalmente JAR) en mi repositorio local. Luego, cuando construyo módulos individuales en la compilación, Maven recuperará las dependencias del repositorio local.

  2. Cuando llegue el momento de desplegar instantáneas o lanzamientos, voy a ejecutar "despliegue mvn". Al ejecutar esto, intentará implementar los archivos en un repositorio o servidor remoto. Por lo general, voy a implementar a un administrador de repositorio como Nexus

Es cierto que ejecutar "implementar" requerirá una configuración adicional, tendrá que suministrar una sección de gestión de distribución en su POM.


De los documentos de Maven , parece que es solo una diferencia en qué repositorio instalar el paquete en:

  • instalar: instale el paquete en el repositorio local, para usarlo como dependencia en otros proyectos a nivel local
  • implementar: hecho en un entorno de integración o lanzamiento, copia el paquete final en el repositorio remoto para compartirlo con otros desarrolladores y proyectos.

Tal vez hay cierta confusión en que la "instalación" en el servidor de CI la instala en su repositorio local, que luego usted como usuario está compartiendo.