Мейвен:Как создать сборку с артефактами моментальных снимков без имени файла временных меток?
-
22-09-2019 - |
Вопрос
У меня есть репозиторий, содержащий артефакты моментальных снимков с метками времени.
Я хочу создать сборку, содержащую зависимости.Это работает нормально.Но имена артефактов содержат метку времени.Поэтому мне интересно, как удалить метку времени из имени файла только для сборки.
я использовал это набор зависимостей:
<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping>
Но версия, похоже, уже содержит метку времени.Так есть ли шанс получить 1.1.1-МОНИТОР вместо 1.1.1-20100323.071348-182?
Я использую версию 2.2-beta-4 плагина maven-assembly-plugin.
Решение
Не могли бы вы попробовать следующее для outputFileNameMapping
:
${artifactId}-${baseVersion}.${extension}
По таким вопросам, как СБОРКА-67, СБОРКА-91:
С использованием
${baseVersion}
для случаев, когда вы хотите сохранить имя -SNAPSHOT, плагин сохраняет возможность использовать${version}
для именования timestamp-buildnumber, которое полезно для описания точной версии библиотеки, включенной в сборку.
Обновлять: После отзывов ОП точный синтаксис (не был в этом полностью уверен):
${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}
Другие советы
Я столкнулся с аналогичной проблемой при попытке собрать пакет с плагином сборки, который содержал папку с номером версии (я упаковываю WSDL и XSD).
Обходной путь, который я нашел, довольно прост: я помещаю фактический номер версии в свойство (например,1.0), что делает его доступным в файле Bundle.xml для плагина сборки и устанавливает версию pom:
<version>${service.version}-SNAPSHOT</version>
Таким образом, на содержимое моего пакета не влияет маркер SNAPSHOT, в частности, он не изменяется при выпуске.