Можно ли заштриховать / изолировать все зависимости реализации в gradle? - PullRequest
2 голосов
/ 23 мая 2019

Контекст

При компиляции и запуске программ на Java, использующих множество зависимостей, вы легко можете столкнуться с так называемым «адом путей к классам», который обычно вызывается конфликтующими транзитивными зависимостями.,С помощью механизма зависимостей Gradle для Java это можно до некоторой степени смягчить, по крайней мере, не пропуская транзитивные зависимости во время компиляции ( link ).

Насколько я понимаю, когда возникают проблемы с конфликтом транзитивных зависимостей, существует три основных способа:

  • Найти другую библиотеку (версию) и надеяться, что она работает
  • Затенить переходные зависимости
  • (новый). Использовать Расслоение для модулей

Вопрос

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

В качестве альтернативы, существует ли автоматический способ использования новой системы "наслоения модулей"?

Справочная информация

В прошлом я уже спрашивал, как избежать конфликта между успешной компиляцией и ошибками загрузки во время выполнения SO Вопрос .Я также проверил, как разрешать конфликты зависимостей с помощью , отключая переходные зависимости и , затеняя в жирной банке .Я также видел, что система модулей Java не будет предназначена для ее решения ссылка , но многоуровневая структура проекта Jigsaw может ссылка

...