В соответствии с 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?