Лучшие практики для встраивания номера версии SVN в манифест Java jar? - PullRequest
5 голосов
/ 18 января 2012

Я вижу такие вопросы, как Как получить номер ревизии из Subversion с помощью Maven? , но существуют ли какие-либо стандарты (де-факто или нет), для которых фактические поля следует использовать в манифесте, для версии # иURL хранилища (т. е. показывающий, что он находится на соединительной линии или ветви)?Я видел используемую реализацию-версию, с и без лидирующей буквы "r" (для ревизии), я видел также реализацию-сборку:

edit Я удалил тег maven, которого там быть не должно.Мой вопрос касается содержимого банки, а не самого инструмента.

1 Ответ

2 голосов
/ 19 января 2012

К сожалению, манифесты jar не имеют никакого стандарта для нумерации версий.

Но, на самом деле, существует другой стандартный способ автоматического обновления номера ревизии. Вы можете использовать svn: Keywords , чтобы получить номер текущей ревизии в ваших файлах после каждой фиксации. Существует свойство $Revision$ для замены ревизии и $HeadURL$ для замены URL репозитория. Вам просто нужно поместить следующую строку в файл и поместить этот файл под контроль версий:

$Revision$ $HeadURL$

Если вы создаете манифест на лету с помощью Maven, я бы порекомендовал поместить следующее содержимое в файл version.properties:

revision=$Revision$
repourl=$HeadURL$

Затем включите в pom.xml оператор (для maven должен быть включен плагин свойств):

<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>version.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
  </plugin>

И тогда вы сможете указать номер ревизии и URL репо в манифесте:

<manifest>
  <attribute name="Revision" value="${revision}" />
  <attribute name="Repository URL" value="${repourl}" />
</manifest>

Обратите также внимание, что вам нужно будет явно включить svn:keywords, используя свойства subversion, чтобы заменить $Revision$ и $HeadURL$ в вашем файле действительными значениями. Если вы решите использовать version.properties, вам нужно будет выполнить следующую команду:

svn propset svn:keywords Revision version.properties
svn propset svn:keywords HeadURL version.properties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...