В дереве зависимостей maven родительская зависимость переопределяет область дочернего элемента? - PullRequest
3 голосов
/ 04 июня 2019

Если у меня есть следующий вывод при запуске mvn dependency:tree, являются ли jar-файлы, входящие в область тестирования или компиляции?

[INFO] |  +- io.springfox:springfox-swagger1:jar:2.5.0:test
[INFO] |  |  +- io.springfox:springfox-schema:jar:2.5.0:compile
[INFO] |  |  +- io.springfox:springfox-swagger-common:jar:2.5.0:compile

Ответы [ 2 ]

3 голосов
/ 04 июня 2019

В вашем примере все три зависимости эффективно ограничены test. В соответствии с областями зависимости любая транзитивная compile зависимость в области test область видимости становится test область действия:

Каждая из областей (кроме импорта) по-разному влияет на транзитивные зависимости, как показано в таблице ниже. Если для области в левой колонке задана зависимость, то переходные зависимости этой зависимости с областью в верхней строке приведут к зависимости в основном проекте с областью, указанной на пересечении. Если область не указана, это означает, что зависимость будет опущена.

            compile     provided        runtime     test
compile     compile     -               runtime     -
provided    provided    -               provided    -
runtime     runtime     -               runtime     -
test        test        -               test        -
3 голосов
/ 04 июня 2019

Это будет test.Но это не общее правило для всех областей видимости.В вашем случае это имеет место:

Для области действия test транзитивные зависимости области действия runtime и compile будут извлечены с областью действия test в проекте.

Более подробную информацию можно найти на https://www.baeldung.com/maven-dependency-scopes

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