Как встраивать ревизионную информацию, используя Mercurial и Maven (и SVN) - PullRequest
5 голосов
/ 06 июня 2010

У нашего проекта был хороший хак (хотя я предполагаю, что есть лучшие способы сделать это), чтобы встроить информацию о ревизиях в артефакты (jar и т. Д.), Когда мы использовали svn.

Теперь мы перешли на Mercurial, и мы хотим иметь похожую вещь, но прежде чем я начну работать над подобным хаком с Mercurial, я хотел бы знать, есть ли лучшие способы сделать это.

Спасибо за ваши ответы!

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

Ответы [ 2 ]

4 голосов
/ 06 июня 2010

Плагин Maven Build Number поддерживает Mercurial начиная с 1.0-beta-4 (см. MOJO-1432 ).Цель buildnumber:hgchangeset устанавливает два свойства проекта с идентификатором набора изменений и датой набора изменений, которые можно использовать с фильтрацией для получения эквивалентного результата.

2 голосов
/ 07 июня 2010

Похоже, у Паскаля есть официальный способ maven сделать это, но если вы в конечном итоге будете эмулировать svn-хак, лучшая соответствующая команда в mercurial будет:

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

или если вы используете теги и хотите выглядеть модно:

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

см. hg help templates для всех опций.

...