使用 Gradle 时,如何排除可传递依赖项的所有实例?
我的 gradle 项目使用该插件来构建 jar 文件。作为运行时传递依赖项的一部分,我最终拉入了 .(它在至少5或6个其他传递依赖项中被引用为子传递依赖项 - 该项目使用spring和hadoop,因此除了厨房水槽之外的所有内容都被拉入......不等...那太:)了)。application
org.slf4j:slf4j-log4j12
我想从我构建的 jar 中全局排除该 jar。所以我试过了这个:slf4j-log4j12
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
但是,这似乎排除了所有工件,包括.在调试模式下运行时,我看到如下行:org.slf4j
slf4j-api
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
compile foo { exclude slf4j... }
dependencies
更新:
我也尝试过这个:
configurations {
runtime.exclude name: "slf4j-log4j12"
}
这最终会从构建中排除所有内容!好像我指定了.group: "*"
更新 2:
为此,我使用的是Gradle版本1.10。