Лучшие практики управления версиями Maven [закрыто]


каков наилучший способ изменить версию проекта Maven, чтобы выпустить эту версию, а затем вернуться обратно в *-SNAPSHOT развитие.

в настоящее время я делаю следующее:

  • получить текущую версию (скорее всего, с SNAPSHOT) от pom.xml
  • инкремент версии (mvn -DnewVersion=<something> versions:set), соблюдая правила, описанные в вопросе Maven artifact version for patches
  • mvn:install отправить в репо
  • переименование версии один раз снова добавляем SNAPSHOT постфикс.
  • фиксация изменений (с помощью некоторой системы управления версиями)

у меня есть сильное чувство, что я делаю что-то неправильно и/или неэффективно.

2 55

2 ответа:

вы должны использовать Maven-release-plugin чтобы освободить ваши артефакты. Чем автоматически все ваши версии будут увеличены релиз-плагин. Исключение может быть, если вы переходите от 1.0.3-SNAPSHOT к 1.1.0-SNAPSHOT . Сроки разработки с Maven:

1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..

чтобы перейти к шагу от снимка к версии выпуска, вы должны использовать плагин Maven release вы можете освободить артефакт просто с помощью:

первый шаг:

mvn release:prepare 

заключительный шаг:

mvn release:perform

если вы хотите принять значения по умолчанию, вы можете просто добавить -Б так:

mvn -B release:prepare 

или вы можете объединить эти действия в одно:

mvn -B release:prepare release:perform

вышеуказанное можно также использовать изнутри решения ки.

использование mvn install предназначено только для установки артефактов в локальное хранилище. Если вы работаете с реальным, как менеджер репозитория (который я могу рекомендовать) вы должны использовать:

mvn deploy 

одним из требований для использования плагина выпуска является настройка области scm в вашем pom (я надеюсь, что вы используете контроль версий?).

Если вы хотите больше контроля над фазой выпуска, Maven-release-plugin (mrp) не поможет вам много.

в таком случае у меня есть измененные версии-maven-plugin чтобы иметь возможность увеличить версию, а также добавить / удалить суффикс моментального снимка.

благодаря этим новым функциям вы можете написать сценарий, который делает то же самое, что и mrp, но у вас есть полный контроль над каждым шагом.

например, mrp фиксирует измененную версию до он на самом деле пытается построить его. Если сборка завершается неудачно, вы должны отменить эту фиксацию или, в случае SVN, вы должны сделать еще одну revert-commit.

примечание: Я не являюсь оригинальным автором функции инкремента. Я принял его от autoincrement-версии-Maven-плагин, как указано на странице github.