有没有办法在 Gradle 中隐藏特定的(传递)依赖项?我的情况:我有一个项目直接依赖com.amazonaws:aws-java-sdk-emr:1.10.33
and org.apache.hadoop:hadoop-aws:2.7.1
, but hadoop-aws
依次取决于com.amazonaws:aws-java-sdk-emr:1.7.4
这搞砸了最终的 JAR,但无论如何我都需要。
目前可以做这样的事情吗?
shadowJar {
relocate('com.amazonaws', 'shadowedstuff.awsjdk') {
include(dependency('com.amazonaws:aws-java-sdk:1.7.4'))
}
}
或者有一个不太肮脏的解决方法?
Thanks!
NOTE: 阴影aws-sdk
我的项目直接依赖的不是一个选项。这是一种简化,在原始设置中正在进行一些反思。
是的,您可以使用shadow https://plugins.gradle.org/plugin/com.github.johnrengelman.shadowGradle 的插件有一个语法非常相似 https://imperceptiblethoughts.com/shadow/configuration/relocation/#filtering-relocation以你的例子:
// Configuring Filtering for Relocation
shadowJar {
relocate('junit.textui', 'a') {
exclude 'junit.textui.TestRunner'
}
relocate('junit.framework', 'b') {
include 'junit.framework.Test*'
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)