2013-06-25 3 views
1

В примере Sonatype Maven Guide пример проекта с несколькими модулями должен определять версию проекта в родительском pom.xml и во всем дочернем элементе pom.xml s (для ссылки на версию родителя).Возможно ли пропустить версию родителя maven в дочернем элементе?

Есть ли способ определить версию в одном месте? Похоже, очень много изменений нужно сделать, чтобы поднять версию.

+0

Я думаю, что это может быть обманом http://stackoverflow.com/questions/5726291 – fommil

ответ

2

На мой взгляд, правильный способ организации мультимодульного проекта Maven состоит в том, чтобы один проект отслеживал версии артефакта посредством своего раздела dependencyManagement, который является родительским для всех других проектов; и агрегат , который содержит все остальные проекты, как modules, включая родителя.

Это позволяет централизовать обработку версий для зависимостей между вашими проектами и внешними библиотеками. Вы все равно должны четко отслеживать соответствие между версией каждого проекта в своем pom и в родительском проекте, а также соответствие между версией родителя в его pom и во всех его потомках.

Я согласен с тем, что это очень много работы, и очень легко сделать ошибки: рассмотрите возможность автоматизации с помощью пользовательских плагинов и/или скриптов. Maven Release plugin может помочь в решении этой проблемы.

+0

В чем преимущество того, что у родительского агрегатора есть только один родитель, который выполняет агрегацию? – fommil

+0

Это лучшее разделение проблем. Управление зависимостями, отдельное от агрегации, облегчает повторное использование конкретных проектов в разных контекстах, если возникнет такая необходимость. Кроме того, в зависимости от того, какой инструмент управления версиями вы используете, вы можете иметь разные агрегаторы, которые объединяют перекрывающиеся поднаборы подпроектов, например, чтобы превратить один продукт в семейство продуктов. –

+0

Я принимаю этот ответ как по существу «Нет, это невозможно ... и вот какая-то дополнительная релевантная информация» – fommil

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