Gradle: исключить зависимости, предоставленные compileOnly, из fat jar - PullRequest
0 голосов
/ 01 июля 2019

У меня огромная зависимость (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, но это будет небольшой беспорядок (я что-то пропустил? Я исключил что-то, что на самом деле не предусмотрено?).

...