2010-04-28 24 views
6

Al usar maven-release-plugin con Git, mvn release: prepare etiquetas felizmente la versión en el repositorio local. Esperaría la liberación de mvn: realizar para empujar las etiquetas al repositorio remoto, pero esto no significa que suceda.¿Maven-release-plugin envía etiquetas al repositorio remoto de Git?

¿No soy fiel?

Si no es así, ¿hay alguna opción para habilitar la inserción de etiquetas de liberación en el repositorio remoto?

+0

¿Su servidor Git da permiso para insertar la etiqueta? En un servidor de Gerrit, necesitaba el permiso "Forge Committer" cuando el ID de usuario de Jenkins era diferente del ID de usuario que se usaba para enviar. – Andre

+0

¡Interesante pregunta, pero 5 años después no recuerdo! – Armand

Respuesta

6

Para mí, release-prepare parece estar empujando tres veces:

  1. Después de cometer el POM actualizado a la nueva versión, que se está ejecutando git push sin argumentos, para empujar esa confirmación.
  2. Después de etiquetar, se está ejecutando git push origin <tagname>, que es lo que debe empujar la etiqueta.
  3. Después de confirmar el POM actualizado a la nueva versión de instantánea, se está ejecutando git push sin argumentos otra vez.

dado que es la especificación explícita origin para el empuje etiqueta, sólo se puede empujar con éxito las etiquetas si su alias git-remoto se llama en realidad origin. Para ver a qué se llama el suyo, ejecute git remote -v.

Tenga en cuenta también que git push sin argumentos puede tener un valor predeterminado diferente a origin, dependiendo de la configuración del repositorio, es decir, puede haber estado intentando enviar confirmaciones a un lugar y etiquetas a otro. Vea aquí para dónde provienen esos valores predeterminados: http://www.kernel.org/pub/software/scm/git/docs/git-push.html#REMOTES

+1

Gracias por la respuesta detallada. Este comportamiento parece inconsistente e inútil para mí. ¿Me estoy perdiendo de algo? – Armand

+3

Acepto que no debe presionar durante 'relese: prepare'. Lo que me sucedió es que 'release: prepare' funcionó bien, pero' release: perform' falló porque los edds 'scm' del pom-file estaban equivocados. Así que en realidad etiqueté una compilación con un 'pom.xml' roto. OMI, dada la naturaleza distribuida de git, tendría más sentido presionar al final de este proceso. ¿Me equivoco? –

Cuestiones relacionadas