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.