2016-11-17 2 views
1

Я пытаюсь включить хеш-фиксацию git в имя артефакта, чтобы различать моментальные снимки в сценарии CI. git hash успешно включен в целевую/папку моего проекта, но на последнем шаге maven он копирует артефакт в мою папку HOME/.m2/repositories и изменяет имя на ARTIFACTID-VERSION-mta.jar.Хранить имя артефакта maven на maven-install-plugin (по умолчанию-install)

Как сохранить имя файла из целевой/папки, содержащей хеш-код?

Я посмотрел на maven-install-plugin, но не смог найти свойство finalName или что-то в этом роде.

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ projectname --- 
[INFO] Installing PROJECTDIR/pom.xml to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1.pom 
[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-mta.jar 

Я хотел бы последняя строка будет

[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-d054c42-mta.jar 

Controlling maven final name of jar artifact не решает проблему, поскольку она изменяет выходную папку.

+0

Вы не можете сделать это. Имя в локальном репозитории следует за стандартом 'artifacId-version (-classifier) ​​.type', и вы не можете его изменить. См. Http://stackoverflow.com/questions/17024803/version-in-jar-name – Tunaki

+0

Могу ли я установить хеш-коммит как классификатор? –

+0

Вы _could_, но это означает, что его координаты Maven будут меняться каждый раз, когда будет новый коммит, поэтому каждый проект в зависимости от него должен будет изменить объявление '' для каждого commit_. Для этого см. Http://stackoverflow.com/questions/8354201/how-do-i-build-only-one-jar-file-with-classifier. Похоже, вы пытаетесь перестроить механизм SNAPSHOT Maven с нуля. Почему бы не выполнить версию вашего проекта «1.0.1-SNAPSHOT»? – Tunaki

ответ

0

это, вероятно, из-за расположения репозитория.

Repository Layout Определение

Это окончательный макет для хранилища, доступного в Maven 2.x и связанных с Ant задач.

Для первичных артефактов: /$groupId[0]/../${groupId[n]/$artifactId/$version/$artifactId-$version.$extension

Для вторичных артефактов: /$ идентификатор_группы [0] /../$ идентификатор_группы [п]/$ артефакта/$ версия/$ artifactId- $ версия- $ классификаторов. $ расширение

См https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+Layout+-+Final

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменяется –

Смежные вопросы