Ответ 1
Проблема состоит из двух частей:
-
Вы пытаетесь установить
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>maven-buildnumber-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>