У меня огромная зависимость (Spark), которую я использую в конфигурации compileOnly
и некоторых других библиотеках.Я, конечно, пытаюсь построить толстую банку без compileOnly
зависимостей.Gradle делает это нормально, однако, несколько библиотек объявляют compile
/ runtimeOnly
зависимости, которые также являются зависимостями compileOnly
огромной зависимости, например:
my-module
|-> compileOnly: spark
| ...
| \-> compile: scala-reflect
| ...
\-> implementation: library
...
\-> runtimeOnly: scala-reflect
, что приводит к включению scala-reflect
в jarкак зависимость во время выполнения, которую я пытаюсь избежать.Scala взят здесь только в качестве примера, на самом деле их больше (Джексон, часть Apache Commons,…).
Есть ли способ обеспечить compileOnly
обучающие зависимости?
Как я вижу, я могу вручную exclude
эти транзитивные зависимости и повторно объявить их как compileOnly
, но это будет небольшой беспорядок (я что-то пропустил? Я исключил что-то, что на самом деле не предусмотрено?).