2012-02-27 13 views
35

Me puede estar faltando algo extremadamente obvio, pero necesito algunas aclaraciones a pesar de todo. Estoy a punto de comenzar el desarrollo usando maven y archiva. Agregué las configuraciones de servers + settings a settings.xml y distributionManagement al POM de maven que deseo implementar.Cómo diferenciar entre versiones frente a instantáneas

Pongo referencias tanto a mi repositorio interno de instantáneas, como a mi repositorio interno en el POM. ¿Hay 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?

Puede alguien aclarar esto? '

Respuesta

57

Si su project.version contiene SNAPSHOT (F. E., 1,2-snapshot) y ejecutar mvn deploy, artefactos serán desplegados a su repositorio de instantánea. Si no lo hace (es decir, 1.2), se implementarán en su depósito de versiones.

+0

Entonces, para realizar un "lanzamiento", yo mismo determino los números mayores/menores etc. ¿O simplemente elimino -SNAPSHOT de esa línea? Maven no los actualiza cada vez que lo haces: ¿lanzamiento o lo que sea? –

+0

Puede hacerlo manualmente o usar [maven-release-plugin] (http://maven.apache.org/plugins/maven-release-plugin/). –

+2

Sugiero mucho maven-release-plugin ya que también creará una etiqueta para ti y hará todas las cosas tediosas y repetitivas – tom

0

Puede ejecutar mvn deploy.

Si su versión 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. No se recomienda maven-release-plugin para administrar el control de versiones y la implementación Mediante la ejecución de mvn -B release:clean release:prepare release:perform, en hoja de vida:

  • el sufijo SNAPSHOT se retira de la versión (por ejemplo 2.1-SNAPSHOT ->2.1);
  • la aplicación está diseñada para generar archivos JAR;
  • el código está comprometido con el repositorio de código (por ejemplo, git) y etiquetado (por ejemplo, 2.1);
  • el JAR se implementa en el 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).
Cuestiones relacionadas