Maven: Как создать сборку с артефактами моментальных снимков без имени файла с отметками времени?

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

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

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

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

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

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


person marabol    schedule 25.03.2010    source источник
comment
Какие версии maven и плагина сборки вы используете?   -  person Pascal Thivent    schedule 25.03.2010
comment
Я использую maven-assembly-plugin версии 2.2-beta-4. (Я добавил эту информацию к своему вопросу)   -  person marabol    schedule 25.03.2010
comment
Принятый ответ отлично работает с Maven 3 и версией плагина сборки 2.2.1.   -  person Urs Reupke    schedule 27.10.2011
comment
У меня тоже есть такое же требование, не могли бы вы поделиться, в какой файл мне нужно добавить этот тег? Этот файл добавлен помимо pom.xml?   -  person Sankalp    schedule 28.09.2016


Ответы (2)


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

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

Согласно таким вопросам, как MASSEMBLY-67, MASSEMBLY-91:

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

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

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
person Pascal Thivent    schedule 25.03.2010
comment
Большое спасибо. Небольшое изменение, и все работает нормально: ‹outputFileNameMapping› $ {artifact.artifactId} - $ {artifact.baseVersion}. $ {Artifact.extension} ‹/outputFileNameMapping› - person marabol; 26.03.2010
comment
@marabol Пожалуйста. Рад, что это работает. Я не был полностью уверен в синтаксисе свойств, но думал, что вы разберетесь :) - person Pascal Thivent; 26.03.2010
comment
Вы также можете добавить классификатор: $ {artifact.artifactId} - $ {artifact.baseVersion} $ {dashClassifier?}. $ {Artifact.extension} - person Rob; 17.02.2014

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

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

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

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

person Denis Carniel    schedule 09.12.2011