2009-10-06 3 views
1

Я использую maven/hudson для создания моего проекта. Одной из целей, выполняемых hudson, является пакет mvn, поэтому у меня есть полная дистрибуция, созданная на каждой сборке. Есть ли способ (может быть, аргумент для пакета?), Что я могу добавить номер сборки к названию созданного архива?Token for Maven имя пакета

спасибо,

Джефф

ответ

2

Попробуйте следующее. Он должен активироваться только в том случае, если установлено свойство BUILD_NUMBER, поэтому вы все равно будете генерировать правильно созданные имена, если не используете hudson.

<profiles> 
    <profile> 
     <id>hudson-build</id> 
     <activation> 
      <property> 
       <name>BUILD_NUMBER</name> 
      </property> 
     </activation> 
     <build> 
      <finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName> 
     </build> 
    </profile> 
</profiles> 

Я предложил бы положить это в базовую pom.xml, который затем можно ссылаться как родитель к вашей другому pom.xml конфиге.

Список других свойств, которые hudson передает на сборки maven, см. http://weblogs.java.net/blog/johnsmart/archive/2008/03/using_hudson_en.html.

+0

Я закончил тем, что это решение было проще. Оба очень хорошие ответы. Благодарю. –

1

Вы можете передать произвольное свойство к Maven построить с помощью -D[key]=[value], например -DbuildNumber=1234 затем настроить версию в вашем ПОМ как `1.0.0 - $ {BuildNumber}. Однако этот подход идет вразрез с общим принципом Мейвена. Вы бы лучше использовали обработку Maven SNAPSHOT. SNAPSHOT - ключевое слово для Maven для обновления зависимости каждый раз.

Вы также можете использовать buildnumber-maven-plugin для автоматического добавления номера в версию сборки каждый раз. См. Это answer для некоторых деталей. Плагин buildnumber может быть настроен для создания ревизии на основе пересмотра SCM, отметки времени или последовательности.

+0

Благодарим вас за быстрый ответ. –

+0

Я исправил ссылку на другой ответ –

+0

Поскольку я читал первую ссылку, которую я реализовал с помощью версии roject, в ней есть моментальный снимок, но он не расширяется. В моей POM моя версия указана как 0.0.1-SNAPSHOT, но zip-имя (созданное пакетом mvn) - это -0.0.1-SNAPSHOT-package.zip. Разве я не настраиваю его на правильное расширение? –