Maven: Как создать сборку с артефактами моментального снимка без имени файла с отметками времени? - PullRequest
15 голосов
/ 25 марта 2010

У меня есть репозиторий, содержащий артефакты снимков с отметками времени.

Я хочу создать сборку, которая содержит зависимости. Это отлично работает. Но имена артефактов содержат метку времени. Поэтому мне интересно, как удалить метку времени из имени файла только для сборки.

Я использовал этот dependencySet :

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping>

Но версия, похоже, уже содержит метку времени. Так есть ли шанс получить 1.1.1-SNAPSHOT вместо 1.1.1-20100323.071348-182 ?

Я использую версию 2.2-beta-4 модуля maven-assembly-plugin.

Ответы [ 2 ]

24 голосов
/ 25 марта 2010

Не могли бы вы попробовать следующее для outputFileNameMapping:

${artifactId}-${baseVersion}.${extension}

По таким вопросам как MASSEMBLY-67 , MASSEMBLY-91 :

Использование ${baseVersion} для случаев, когда вы хотите сохранить именование -SNAPSHOT, плагин сохраняет возможность использовать ${version} для именования timestamp-buildnumber, что полезно для описания точной версии библиотеки, включенной в сборку.

Обновление: После обратной связи с OP точный синтаксис (не был полностью уверен в этом):

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
2 голосов
/ 09 декабря 2011

Я столкнулся с аналогичной проблемой при попытке создать пакет с плагином сборки, который содержал папку с номером версии (я упаковываю WSDL и XSD).

Обходной путь, который я нашел, довольно прост, я помещаю фактический номер версии в свойство (например, 1.0), которое делает его доступным в файле bundle.xml для плагина сборки, и устанавливаю версию pom:

<version>${service.version}-SNAPSHOT</version>

Таким образом, содержимое моего пакета не зависит от маркера SNAPSHOT, в частности, оно не изменяется при выпуске.

...