Документация maven дает a slightly confusing until you understand it стол.
Чтобы выяснить, что область является вы должны следовать по следующему пути записей ...
Start от конечного родительского проекта и объединить все <dependencies>
списка. Сделайте то же самое для <dependencyManagement>
. При слиянии, groupId:artifactId:type:classifier
является ключевым, детские помпы, которые имеют зависимости с одним и тем же ключом, переписывают все значения, которые они определяют.
Теперь вам необходимо нанести <dependencyManagement>
на список <dependencies>
, чтобы заполнить все пробелы.
На данный момент мы теперь знаем зависимости текущего проекта. Области в этом списке соответствуют строке, выбранной вами из таблицы.
Для каждой зависимости в списке вы повторите описанный выше процесс, чтобы вычислить список зависимых зависимых зависимостей (да включая и шаг ths), а затем область этих зависимостей соответствует выбору столбца в таблице.
После того, как вы разработали транзитивную зависимость, и их области через таблицу, для каждой зависимости, затем вы ток модуль <dependencyManagement>
наиважнейшей scope
, version
и exclusions
, как определенно <dependencyManagement>
и там у вас есть эффективный список переходных зависимостей ,
Есть другие, более тонкие эффекты, которые есть, чтобы сохранить существующее поведение, когда ошибки имеют по существу становятся функциями и диапазоны версий могут дополнительно запутать, но выше Шоуду дать бог общего понимание проблемы пространства
Это оказалось потому что родительский pom имел раздел управления зависимостями, предоставляющий область для проекта C как компиляцию. Я все еще удивляюсь, что во время компиляции A ограничение в области C, подразумеваемое транзитивными зависимостями, не переопределяет область в управлении зависимостями родительских элементов. –