Транзитивная область в maven для предоставленного и времени выполнения - PullRequest
0 голосов
/ 27 июня 2019

В соответствии с maven разрешением переходной области действия ,

Если A - наш проект, имеющий прямую зависимость от X, область действия которого указана относительно A.

Maven сообщает, что любая зависимость (прямая или транзитивная) X с областью выполнения будет преобразована в область действия provided w.r.t A.

Пусть Y - прямая зависимость X с областью действия runtime w.r.t от X.

A --> X(scope = provided) --> Y(scope = runtime)

Теперь Y будет разрешен до provided scope w.r.t к A.

Наблюдение: Y никогда не понадобится в runtime classpath из A. Это понадобится только в test classpath из A. На самом деле, если вы возьмете Y в качестве транзитивной зависимости X, сохраняя свою область видимости только во время выполнения, он все равно никогда не будет использован в A runtime classpath. Будет использоваться только в test classpath.

Вопрос: Итак, не должны ли мы сказать -

Если A - наш проект, имеющий прямую зависимость от X, область действия которой указана относительно A, то любая зависимость (прямая или транзитивная) X с областью выполнения будет преобразована в область действия test относительно A?

1 Ответ

1 голос
/ 27 июня 2019

Можно определенно утверждать, что эти зависимости лучше преобразовать в «тестовую» область видимости.

Но я сомневаюсь, что когда-нибудь будут какие-то изменения в этом.

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