2013-06-11 2 views
0

У меня есть то, что я считаю довольно распространенной установкой. У меня есть проект с двумя модулями, каждый со своим собственным pom.xml. Выше этого, у меня есть pom.xml для проекта, который зависит от его подмодулей. Два подмодуля имеют общую зависимость, а именно log4j. Как я должен бороться с этой зависимостью? Должен ли я просто просто иметь в каждом подмодуле log4j в качестве зависимости, или должен быть задействован модуль проекта более высокого уровня, утверждая его как зависимость от проекта? Если у меня есть оба подмодуля, перечисляющих зависимость, Maven будет умным и только вытащить log4j один раз, или каждый подмодуль вытащит свою собственную личную копию log4j? Если модуль проекта имеет зависимость, пакет log4j будет доступен в нужное время для подмодулей? Что бы вы сделали или что вы сделали в этой ситуации?Как обрабатывать два подмодуля Maven, которые разделяют зависимость от кода

ответ

0

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

Источник: Это то, что делает моя команда в одном из наших проектов.

2

Лучший способ сделать это с помощью метки dependencyManagement.

Раздел управления зависимостями является механизмом централизации информации о зависимостях. Когда у вас есть набор проектов, которые наследуют общего родителя, можно поместить всю информацию об этой зависимости в общий POM и получить более простые ссылки на артефакты в дочерних POM.

Чтобы суммировать эффект, вы помещаете тег в родительский pom и имеете ссылки на него. Однако они не ссылаются на номер версии. Преимущество заключается в том, что вы можете в любой момент обновить версию log4j в родительском помпе, и все ваши детишки получают новую версию без изменения их попов.

+0

Спасибо. Я новичок в Maven. Я знал, что есть способ сделать это, я просто не знал, что это было. Я замечаю, что теперь есть новый способ, который включает импорт зависимостей, а не наследование. Я тоже посмотрю на это. – Bill

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