2010-04-28 8 views
6

Quando si utilizza il plugin maven-release-con Git, versione mvn: preparare felicemente i tag della release nel repository locale. Mi aspetterei la release di mvn: esegui per spingere i tag sul repository remoto, ma questo non è sembra che si verifichi.Il maven-release-plugin inserisce i tag nel repository Git remoto?

Mi sbaglio?

In caso contrario, esiste un'opzione per abilitare i tag di rilascio push nel repository remoto?

+0

Il server Git autorizza il push del tag? Su un server Gerrit avevo bisogno dell'autorizzazione "Forge Committer" quando l'ID utente di Jenkins era diverso da quello dell'utente che veniva usato per spingere. – Andre

+0

Interessante domanda, ma da 5 anni non riesco a ricordare! – Armand

risposta

6

Per me, release-prepare sembra spingere tre volte:

  1. dopo aver commesso il POM aggiornato alla nuova versione, è in esecuzione git push senza argomenti, a spingere che commettono.
  2. Dopo la codifica, è in esecuzione git push origin <tagname>, che è ciò che dovrebbe spingere il tag.
  3. Dopo aver commesso il POM aggiornato alla nuova versione di istantanea, è in esecuzione git push senza ulteriori argomenti.

dato che è specificando esplicitamente origin per il tag spinta, si può spingere con successo solo i tag se il vostro alias git-remota è in realtà chiamato origin. Per vedere che cosa sono chiamati i tuoi, esegui git remote -v.

Si noti inoltre che git push senza argomenti può default a qualcosa di diverso da origin, a seconda della configurazione del repository - vale a dire che potrebbe aver tentato di spingere impegna in un solo luogo e tag ad un altro. Vedi qui per sapere da dove provengono tali valori predefiniti: http://www.kernel.org/pub/software/scm/git/docs/git-push.html#REMOTES

+1

Grazie per la risposta dettagliata. Questo comportamento sembra incoerente e inutile per me. Mi sto perdendo qualcosa? – Armand

+3

Sono d'accordo che non dovrebbe premere durante 'relese: prepare'. Quello che è successo a me è che il 'release: prepare' ha funzionato bene, ma il' release: perform' non è andato a buon fine perché gli eddres di 'scm' nel file pom non erano corretti. Quindi, in realtà ho taggato una build con un 'pom.xml' rotto. IMO, data la natura distribuita di git, avrebbe più senso spingere alla fine di questo processo. Ho sbagliato? –