2010-06-06 4 views
5

Unser Projekt hatte einen netten Hack (obwohl ich vermute, dass es bessere Möglichkeiten gibt), Revisionsinformationen in die Artefakte (jar usw.) einzubetten, wenn wir gebrauchte svn.Wie man Revisionsinformationen mit mercurial und maven (und svn) einbindet

Jetzt sind wir zu mercurial migriert, und wir wollen eine ähnliche Sache haben, aber bevor ich anfange, an einem ähnlichen Hack mit mercurial zu arbeiten, wollte ich wissen, ob es bessere Wege gibt, dies zu tun.

Vielen Dank für Ihre Antworten!

<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> 

Antwort

4

Die Maven Build Number Plugin hat Unterstützung für Mercurial da 1,0-beta-4 (siehe MOJO-1432). Das Ziel legt zwei Projekteigenschaften mit der Changeset-ID und dem Changeset-Datum fest, die Sie mit der Filterung verwenden können, um ein äquivalentes Ergebnis zu erhalten.

2

Klingt wie Pascal die offizielle Maven Art und Weise hat es zu tun, aber wenn Sie Ihren SVN-Hack emuliert tun am Ende, der beste entsprechende Befehl in Mercurial wäre:

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

oder wenn Sie Tags verwenden und wollen Lust bekommen:

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

siehe hg help templates für alle Optionen.

+0

Wie wäre es mit 'hg parent' anstelle von' hg log -r .'? – Alex