На каком уровне дерева зависимостей maven находятся зависимости от родительского проекта - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть родительский pom, который зависит от jar стороннего производителя A с версией 1.0. Тогда у меня есть дочерний проект, который наследуется от родительского pom. Этот дочерний проект определяет зависимость от библиотеки B, которая сама имеет зависимость от стороннего jar A с версией 1.1.

Выглядит ли дерево зависимостей следующим образом (и, следовательно, версия 1.0 извлекается):

Child-> A (версия 1.0) Child-> B-> A (версия 1.1)

На каком уровне дерева зависимостей находятся зависимости родительского POM?

1 Ответ

2 голосов
/ 04 февраля 2020

Перед разрешением зависимостей родительский и дочерний POM сначала объединяются в «эффективный POM». Вы можете отобразить эффективную POM, используя mvnhelp:effective-pom. Следовательно, ваше дерево зависимостей становится:

  (Effective POM) -> A:1.0
  (Effective POM) -> B     -> A:1.1

Эффект такой же, как если бы вы объявили зависимость A: 1.0 в дочернем POM. Поскольку зависимости ближе к root «win» в Maven, используется A: 1.0.

Кроме того, если родительский и дочерний POM объявляют зависимость для одного и того же модуля, версия, указанная дочерним, переопределяет тот, который указан родителем (= становится версией в действующем POM).

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