2014-05-18 8 views
16

Si utilizza Maven e git insieme per un progetto Java. Nella sezione <scm>, il codice <tag> viene aggiunto automaticamente dal plugin di rilascio.Qual è l'utilizzo di Maven pom.xml - <tag> elemento all'interno di <scm> quando si utilizza git

Per esempio,

<scm> 
      <connection>scm:git:http://myserver:7990/scm/project/test.git</connection> 
      <tag>releaes-tag</tag> 
    </scm> 

Che cosa <tag> rappresentano qui?

Credo che la convenzione normale è <scm>HEAD</scm>.

Quando usavamo la sovversione, Maven mai usato <tag></tag>

Qual è il significato di <tag></tag>?

Ho cercato la documentazione di Google e Maven ma non riesco a trovare alcuna informazione su di esso.

risposta

14

L'elemento <tag> viene utilizzato da release:prepare per specificare il tag creato per questa versione (implementato come MRELEASE-723). Al di fuori di una release è essenzialmente un segnaposto e HEAD è un valore appropriato.

Quando usavamo la sovversione, Maven mai usato <tag></tag>

Come MRELEASE-723 spiega:

quando invoco rilascio: preparare con un URL del tipo: https://example.test/svn/REPO/myproject/branches/release sarà sostituito da https://example.test/svn/REPO/myproject/tags/myproject-1.0 che va bene perché ora sai quale revisione eseguire al checkout per creazione del rilascio.

L'elemento <scm> per una versione di rilascio deve contenere informazioni sufficienti per verificare il tag creato per questa versione.

Subversion consente di includere il tag nell'URL di connessione. Né Git né Mercurial lo consentono, pertanto viene utilizzato l'elemento <tag>.

+4

Ma su una diramazione (versione di istantanea dell'artefatto) posso semplicemente rimuovere il ' HEAD' giusto? E averlo appena impostato automaticamente sulla versione Maven per il tag di rilascio. O lo aggiunge sempre a HEAD dopo un rilascio? –

+0

Forse sono solo spessa, ma continuo a non capire la necessità di * automatizzare * l'aggiunta di '' nella sezione ''. Tendo a rimuoverlo quando lo vedo, ma continua a saltar fuori. – peterh

+0

Quindi, il valore di '' è scelto in modo univoco quando si esegue l'obiettivo 'release: prepare' (l'utente viene richiesto per questo). E in seguito l'obiettivo è inserire tale valore nel 'pom.xml' sotto' / 'solo per memorizzare queste informazioni? – Johan

Problemi correlati