Как отобразить версию SVN в Maven с помощью плагина номера сборки - PullRequest
3 голосов
/ 02 февраля 2011

Как отобразить версию svn и временную метку, используя плагин номера сборки.

В настоящее время у меня есть следующее

<plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <configuration>
                <format>At {0,time} on {0,date} : SVN Revision {1,number}</format>
                <items>
                    <item>timestamp</item>
                    <item>buildNumber</item>
                </items>
                <doCheck>false</doCheck>
                <doUpdate>false</doUpdate>
            </configuration>
        </plugin>
    </plugins>

Что выглядит следующим образом: At 8:02:51 AM on Feb 2, 2011 : SVN Revision 1

Но моя SVN-ревизия - 1123. Если я закомментирую <format> и <items>, я получу правильный номер сборки SVN. Как отобразить оба?

Спасибо

Ответы [ 4 ]

3 голосов
/ 07 декабря 2012

Обновите до версии 1.2 из buildnumber-maven-plugin и используйте scmVersion.

<items>
    <item>timestamp</item>
    <item>scmVersion</item>
</items>

Очень помог этот ответ SO .

3 голосов
/ 03 февраля 2011

Как сказано в документации , если вы используете специальную <item> buildNumber, она не использует версию SVN, а вместо этого создает / читает файл специальных свойств.

Если вы хотите использовать SVN-ревизию, вам необходимо следовать конфигурации, указанной в первом примере на странице использование . Другие примеры предназначены для иллюстрации использования, которое использует не ревизию SVN, а локальный номер сборки (как в случае сборок с непрерывной интеграцией).

1 голос
/ 20 ноября 2012

В итоге я использовал buildnumber-maven-plugin без параметра формата для получения svn-ревизии, а дату, используя:

<properties>
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
    <build.date>${maven.build.timestamp}</build.date>
</properties>

, затем в фильтрованном ресурсе:

r${buildNumber}, ${build.date}
0 голосов
/ 02 февраля 2011

Имеет ли это значение?

"Плагин buildNumber обновит ваш локальный репозиторий. Это сделано потому, что 'svn info' извлекает ревизию из вашего локального репозитория и не обязательно совпадает с ревизией в удаленном репозитории. Вероятно, вам следует иметь дело с эти изменения перед созданием сборки в любом случае. Опять же, это поведение может быть подавлено с -Dmaven.buildNumber.doUpdate = false. "

http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html

...