Как исключить все экземпляры переходной зависимости при использовании Gradle?JAVA

Программисты JAVA общаются здесь
Anonymous
Как исключить все экземпляры переходной зависимости при использовании Gradle?

Сообщение Anonymous »

My Gradle Project использует плагин Application для создания файла JAR. В рамках переходных зависимостей времени выполнения я в конечном итоге тяну в org.slf4j: slf4j-log4j12 . (Это ссылается на субтетральную зависимость как минимум в 5 или 6 других переходных зависимостях-этот проект использует Spring и Hadoop, так что все, кроме кухонной раковины, втягивается ... не ждать ... это тоже там :)). < /P>

Я хочу глобально исключить SLF4J-log4j12 < /code> jar из моего построенного Jar. Итак, я попробовал это: < /p>

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

configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
Однако это, похоже, исключает all org.slf4j артефакты, включая SLF4J-API . При запуске в режиме отладки я вижу такие строки, как: < /p>

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

org.slf4j#slf4j-api is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-simple is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-log4j12 is excluded from org.apache.hadoop:hadoop-common:2.2.0(runtime).
Я не хочу искать источник каждого SLF4J-log4J12 переходная зависимость, а затем иметь индивидуальную компиляцию foo {Exclude slf4j ...} Защиты в моих зависимостях block. /> Я также попробовал это: < /p>

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

configurations {
runtime.exclude name: "slf4j-log4j12"
}
< /code>

, который в конечном итоге исключает [b] все < /strong> из сборки! Как будто я указал группу: "*" 
.

update 2: [/b]

Я использую Gradle версию 1.10 для этого.

Подробнее здесь: https://stackoverflow.com/questions/217 ... ing-gradle

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