Maven: Зачем ему нужны модули зависимостей .jars для инициализации mvn? - PullRequest
1 голос
/ 05 февраля 2011

У меня есть проект на основе Maven с модулями, скажем,

root
  modA
  modB

Теперь modB зависит от modA. Когда я бегу

mvn initialize help:effective-pom

это терпит неудачу, потому что modB хочет modA.jar. Мой вопрос,

Зачем нужна банка? Вся необходимая информация должна быть в pom.xml, который доступен в модуле.

Кто хочет попробовать, проверьте, например, Hibernate Core 3.3.2.

Спасибо, Ондра

Ответы [ 2 ]

2 голосов
/ 05 февраля 2011

Пробовал это локально в многомодульном проекте и вижу, что maven не нуждается в модуле зависимостей .jars для initialize или help:effective-pom.

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

0 голосов
/ 05 февраля 2011

При работе с многомодульными проектами вам необходимо использовать цель install, чтобы получить файлы pom (и артефакты) в ваш локальный репозиторий. Запуск mvn initialize на вашем корневом модуле в основном заставляет maven выполнять следующие действия для ваших проектов modA и modB

mvn initialize -f modA/pom.xml
mvn initialize -f modB/pom.xml

Если вы используете install, он запустит install на modA еще до того, как начнется modB, что гарантирует, что все артефакты modA, включая его pom, будут в вашем локальном репо. При запуске modB эти артефакты, включая pom modA, будут извлечены из вашего локального хранилища. Maven не достаточно «умен», чтобы знать, что нужно искать файл pom.xml для modA относительно modB, просто потому, что он находится в одном многомодульном проекте. Следовательно, почему артефакты должны быть установлены с использованием цели install.

...