Распространение версии в Maven - PullRequest
5 голосов
/ 28 июня 2010

У меня есть многомодульный проект maven, и я хотел бы использовать версии таким образом, чтобы разработчик мог коснуться только корневого модуля проекта, чтобы изменить версию всех модулей.

Например

ProjA содержит

  • Module1

  • Модуль 2

  • Module3

Все модули содержат свои собственные Poms и имеют Pom ProjA в качестве родителя. После запуска сборки я получаю банку, созданную для каждого модуля. Теперь для создания более новой версии ProjA мне просто нужно изменить версию pom ProjA, и все poms модулей должны забрать эту новую версию у родителя. Это работает, если я харкодирую родительскую версию во всем модуле pom. Но это также заставит меня обновлять poms всех модулей для каждого изменения версии в родительском pom, что лишает его цели. Есть ли способ избежать этого и все же достичь заявленного поведения?

1 Ответ

5 голосов
/ 28 июня 2010

Используйте плагин Maven Versions и его versions:update-child-modules цель:

  • versions:update-child-modules обновляет родительский раздел дочерних модулейпроекта, поэтому версия соответствует версии текущего проекта.Например, если у вас есть агрегатор pom, который также является родительским для проектов, которые он агрегирует, а дочерняя и родительская версии не синхронизированы, это mojo может помочь исправить версии дочерних модулей.(Обратите внимание, что вам может потребоваться вызвать Maven с параметром -N, чтобы выполнить эту цель, если ваш проект сломан настолько сильно, что его невозможно построить из-за несовпадения версий).
...