Maven Dependency:tree -Dscope=compile возвращает пустое значение, но класс можно использовать в исходном коде — как на сJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Maven Dependency:tree -Dscope=compile возвращает пустое значение, но класс можно использовать в исходном коде — как на с

Сообщение Anonymous »

У меня есть проект Maven, где jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1 можно использовать в моем рабочем исходном коде (компилируется нормально, @ApplicationScoped работает), но работает:

Код: Выделить всё

mvn dependency:tree -Dscope=compile -Dincludes=jakarta.enterprise:jakarta.enterprise.cdi-api
возвращает пустой результат. Запуск без фильтра области показывает артефакт, но победный путь проходит через зависимость области тестирования:

Код: Выделить всё

+- io.quarkus:quarkus-junit5:jar:3.8.6.1:test
|  \- io.quarkus:quarkus-core:jar:3.8.6.1:compile
|     \- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.0.1:compile  ← WINNER
Хотя все пути области компиляции (при работе с -Dverbose) показывают, что он опущен для дублирования:

Код: Выделить всё

+- io.quarkus:quarkus-arc:jar:3.8.6.1:compile
|  \- (jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.0.1:compile - omitted for duplicate)
Удаление quarkus-arc (компиляция) нарушает компиляцию. Таким образом, пути области компиляции - это то, что на самом деле делает его доступным, а не тестовый путь, который выиграл разрешение ближайших побед.
Вопросы:
  • Почему -Dscope=compile возвращает пустое значение, если артефакт действительно находится в пути к классам компиляции?
  • Ненадежна ли фильтрация области зависимости:tree для транзитивы, которые появляются в цепочках смешанной области действия?
  • Какова правильная команда, чтобы надежно определить, действительно ли транзитивная зависимость находится в пути к классам компиляции и откуда она происходит?
Версия Maven: 3.9.15
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»