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
SNAPSHOTse 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.