2010-06-06 9 views
5

Il nostro progetto ha avuto un bel trucco (anche se immagino ci siano modi migliori per farlo) per incorporare le informazioni di revisione negli artefatti (barattolo ecc.) Quando usato svn.Come incorporare le informazioni di revisione usando mercurial e maven (e svn)

Ora siamo migrati a mercurial e vogliamo avere una cosa simile, ma prima di iniziare a lavorare su un simile hack con mercurial, volevo sapere se ci sono modi migliori per farlo.

Grazie per le vostre risposte!

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <executions> 
      <execution> 
        <phase>process-classes</phase> 
        <id>svninfo</id> 
        <goals> 
         <goal>exec</goal> 
        </goals> 
       <configuration> 
        <executable>svn</executable> 
        <arguments> 
        <argument>info</argument> 
        <argument>../</argument> 
        <argument>></argument> 
        <argument>target/some-project/META-INF/svninfo.txt</argument> 
        </arguments> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

risposta

4

Il Maven Build Number Plugin ha il supporto per Mercurial dal 1.0-beta-4 (vedi MOJO-1432). L'obiettivo buildnumber:hgchangeset imposta due proprietà del progetto con l'id del changeset e la data del changeset che è possibile utilizzare con il filtro per ottenere un risultato equivalente.

2

Suona come Pascal ha il modo ufficiale Maven per farlo, ma se lo fai finire per emulare il vostro trucco svn, il meglio di comando corrispondente mercuriale sarebbe:

hg log -r . --template '{node|short}\n' 

o se si sta utilizzando i tag e vogliono ottenere l'immaginazione:

hg log -r . --template '{latesttag}+{latestance}\n' 

vedi hg help templates per tutte le opzioni.

+0

Che dire di 'hg parent' invece di' hg log -r .'? – Alex

Problemi correlati