Проблема состоит из двух частей:
Вы пытаетесь установить buildNumber
в версию до того, как она будет разрешена, поэтому она всегда будет ${buildNumber}
, а не разрешенным значением.
Вместо того, чтобы пытаться динамически изменить версию, вы должны установить buildNumber
в элемент finalName
в сборке. Это создаст артефакты с предполагаемым именем в локальном репозитории.
Плагин установки проигнорирует finalName
и развернет его как 1.0.0-SNAPSHOT
независимо, я не знаю, как решить эту проблему. buildNumber
добавляется в манифест, если вы настроите плагин, как показано ниже.
Таким образом, ваша конфигурация будет выглядеть примерно так:
<version>1.0.0-${release.identifier}</version>
...
<build>
<finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName>
...
</build>
Я бы не стал использовать номера сборки в SNAPSHOT
проектах.
Maven предоставляет ключевое слово SNAPSHOT
для обозначения нестабильного проекта в активной разработке. Поэтому, если вы ссылаетесь на проект с версией зависимостей SNAPSHOT
, Maven автоматически проверит наличие обновлений и синхронизирует ваши зависимости.
Если вы затем добавите номер сборки в конец этой версии, вам придется вручную обновлять зависимости, поэтому вы потеряете все преимущества наличия суффикса SNAPSHOT
.
Я лично избегаю использования номеров сборки, где это возможно. Если мне нужно обновить проект, я просто увеличиваю номер версии или использую суффикс, например beta-2
или RC2
. Если вам нужно отслеживать ревизию в SNAPSHOT
, я бы рекомендовал добавить ее в манифест, чтобы вы могли проверить, откуда возникла сборка, но используйте стандартный суффикс SNAPSHOT
, чтобы позволить Maven нормально разрешать версии. Конфигурация ниже показывает, как добавить ревизию в манифест.
Что касается вашей конфигурации, то мне кажется, что ваш URL-адрес SCM настроен правильно. Если у вас нет конфигурации SCM в вашем POM, это может быть проблемой.
Можете ли вы запустить с -X
и проверить какие-либо выходные данные плагина, указывающие, почему он не устанавливает свойство?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>0.9.4</version>
<executions>
<execution>
<id>useLastCommittedRevision</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
</configuration>
</plugin>
person
Rich Seller
schedule
08.08.2009