Обмен зависимостями между несколькими файлами POM - PullRequest
6 голосов
/ 25 января 2012

Каков наилучший метод разделения нескольких зависимостей между проектами Maven.

Я могу подумать о следующих 2 возможных подходах -

  1. Создание родительского файла POM и использование того же файла POM в каждом проекте, в котором используется набор зависимостей.

  2. Создание нового проекта maven с файлом POM, который содержит зависимости. Затем ссылка на этот проект во всех проектах, требующих общих зависимостей.

Есть ли другие подходы, какой из них мне следует использовать?

Ответы [ 4 ]

4 голосов
/ 25 января 2012

IMO, это немного зависит от вашего конкретного случая использования.

Вариант 1, безусловно, хороший путь, но им может стать сложнее / сложнее управлять, если у вас уже есть родительский проект и особенно если у вас есть несколько из этих общих наборов зависимостей (вы можете потеряться в сложной иерархии нескольких родителей). Другой недостаток варианта 1 заключается в том, что (AFAIK) невозможно исключить унаследованные зависимости, поэтому, если ваш проект расширяет родительский компонент, у вас нет другого выбора, кроме как унаследовать все зависимости.

В этом случае вариант 2 проще, понятнее и более гибок. Создайте проект maven типа POM и добавьте к нему зависимость, где это необходимо. С помощью этого решения можно исключить определенные зависимости из проекта POM, что снова делает это решение более гибким.

1 голос
/ 25 января 2012

Я думаю, что вариант 2 лучше, потому что это проблема containment против inheritance.

Что делать, если вам нужно разделить 2 черты зависимости между вашими проектами. При выборе варианта 1 вы застряли на уровне одного наследования, а при выборе варианта 2 добавлена ​​гибкость.

1 голос
/ 25 января 2012

Взгляните на руководство пользователя: http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management (т.е. используйте <dependencyManagement> в родительском POM).

1 голос
/ 25 января 2012

Вариант 1 работает хорошо - я бы предложил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...