wwe tutorial maven

maven - tutorial - Cómo diferenciar entre implementar lanzamientos vs instantáneas



maven tutorial (2)

Me puede estar perdiendo algo extremadamente obvio, pero necesito alguna aclaración independientemente. Estoy a punto de comenzar el desarrollo usando maven y archiva. Agregué tanto servidores + configuraciones a settings.xml, y etiquetas de distributionManagement al POM maven que quiero implementar.

Puse referencias a mi repositorio interno de instantáneas y a mi repositorio interno de lanzamiento en el POM. ¿Existe un comando u opción Maven específico que especifique implementar como SNAPSHOT, y NO para ambos repositorios? O si lo hago, ¿enviará automáticamente una copia a cada repositorio?

¿Alguien puede aclarar esto?


Puede ejecutar mvn deploy .

Si su versión de POM contiene SNAPSHOT como sufijo, se implementará en el repositorio configurado en distributionManagement.snapshotRepository .

Si su POM no contiene el sufijo SNAPSHOT , se implementará en el repositorio configurado en distributionManagement.repository .

Sin embargo, te recomiendo que uses maven-release-plugin para administrar el control de versiones y la implementación. mvn -B release:clean release:prepare release:perform , en resumen:

  • el sufijo SNAPSHOT se elimina de la versión (por ejemplo, 2.1-SNAPSHOT -> 2.1 );
  • la aplicación está construida para generar archivos JAR;
  • el código está asignado a su repositorio de código (por ejemplo, git) y etiquetado (por ejemplo, 2.1 );
  • el JAR se implementa en su repositorio de versiones (no en el repositorio de instantáneas);
  • la versión se incrementa y se agrega el sufijo SNAPSHOT (por ejemplo, 2.2-SNAPSHOT ).

Si su project.version contiene SNAPSHOT (fe, 1.2-SNAPSHOT) y ejecuta mvn deploy , los artefactos se implementarán en su repositorio de instantáneas. Si no lo hace (fe, 1.2), se implementarán en su repositorio de versiones.