Estoy usando Maven 3.0.3 con Git. Utilizo una herramienta de integración (Bamboo) para verificar una rama de código de Git en un directorio. Luego, la herramienta utiliza Maven para ejecutar el ciclo de vida de compilación estándar (compilar, probar, implementar). Lo que quiero es que si mi tarea de implementación Maven tiene éxito, quiero etiquetar la versión de mi código que está desprotegida en Git. ¿Cómo puedo hacer esto de Maven? Cualquier configuración de muestra que pueda proporcionar es muy apreciada.Usando Maven, Git: ¿Cómo etiqueto la última versión de mi código?
Respuesta
Use maven scm plugin. Ver tag functionality in advanced features, que debería ser relevante.
Ahora, el soporte de git no viene de la caja, por lo que necesitará una dependencia a maven-scm-provider-gitexe. Además, para superar plexus exception issue, también deberá agregar una dependencia a una versión posterior de plexus.
Esto es lo que funcionó para mí:
<project>
<scm>
<connection>scm:git:https://[email protected]/my-project.git</connection>
<developerConnection>scm:git:https://[email protected]/my-project.git</developerConnection>
</scm>
<!-- snip -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<version>1.0</version>
<configuration>
<tag>test</tag>
<connectionType>connection</connectionType>
</configuration>
<executions>
<execution>
<id>tag</id>
<phase>deploy</phase>
<goals>
<goal>tag</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- snip -->
</project>
El experto de liberación-plugin puede hacer esto para usted - ver un ejemplo aquí: http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html
recomiendo el pequeño proyecto de código abierto I' Soy parte de -se llama Quicktag y trabaja con un par de VCSes- https://code.google.com/p/quicktag-maven-plugin. Agregue el complemento y generará una clase Java con campos estáticos que contienen información de compilación.
experto de liberación-plugin sólo tiene que declarar el SMC:
<scm>
<url>https://github.com/username/repoName</url>
<connection>scm:git:git://github.com/username/repoName.git</connection>
<developerConnection>scm:git:[email protected]:username/repoName.git</developerConnection>
<tag>HEAD</tag>
</scm>
generar claves git ssh
https://help.github.com/articles/generating-ssh-keys/
y ejecutar liberación mvn: preparar
- 1. git: ¿Cómo obtengo la última versión de mi código?
- 2. ¿Cómo etiqueto mi repositorio git usando la aplicación GitHub Mac?
- 3. Usando Tortoise SVN, ¿cómo puedo descargar la última versión del código fuente de mi aplicación CodePlex?
- 4. Actualizar Git a la última versión (mac)
- 5. Git: ver mi última confirmación
- 6. Usando git para obtener la última revisión
- 7. Sucursal de Alias para la última versión en Git
- 8. Incrementando la versión del Proyecto Maven con Jenkins/Git
- 9. Git: Administrar cada versión de mi aplicación?
- 10. Cómo bloquear la versión del complemento maven
- 11. ¿Cómo puedo encontrar la última versión de un artefacto de un repositorio de maven?
- 12. Organización de proyectos usando Maven + Git
- 13. ¿Hay alguna forma de deshacer mi última inserción en Git?
- 14. Recuperar la versión de maven pom.xml en el código
- 15. ¿Cómo le digo a Maven que use la última versión de una dependencia?
- 16. ¿Cómo encontrar la última fusión en git?
- 17. Buscar la última versión de RVM número
- 18. Cómo instalar la última versión de la tela
- 19. ¿Cómo puedo usar la última versión de la gema Sunspot con Solr Cell?
- 20. ¿Cómo instalo la última versión de ruby en Ubuntu?
- 21. ¿Cómo puedo eliminar mi última confirmación en mi repositorio local de git
- 22. ¿Cómo instalar la última versión de Eclipse Classic en Ubuntu 12.04 usando la terminal?
- 23. ¿Cómo cambiar a una versión particular del código fuente de Linux usando git?
- 24. cómo obtener el código de la versión de etiqueta especificada de Chromium desde git?
- 25. TFS Obtenga la última versión de la Carpeta específica
- 26. ¿Cómo actualizo Enterprise Library a la última versión?
- 27. ¿Por qué mi aplicación siempre usa la última versión de GAC en lugar de la versión de referencia?
- 28. Administrar una rama de versión en Git
- 29. ¿Cómo cambio mi versión de Ruby usando RVM?
- 30. Cómo cargar la última versión de dll desde GAC
COOL, esto hace lo que yo quiero, aunque cuando lo ejecuto dos veces consecutivas, aparece el error "[ERROR] fatal: tag 'qa_release' ya existe" en la segunda ejecución. Puede que tenga que abrir esto como otra pregunta. – Dave
sí, necesitará algo dinámico (una propiedad) para el nombre de la etiqueta, en este ejemplo es estático. – eis
si la última etiqueta se puede dar como un parámetro de línea de comando, puede simplemente usar $ {parameter.version} y ejecutar maven con -Dparameter.version = v1.2 que luego se usaría. Si se necesita la autogeneración mediante el plugin maven, se requiere cierta lógica adicional. –
eis