Gradle 2.3; shadow插件1.2.1。
在我的build.gradle中,我使用shadow插件来重新打包依赖项,如:
shadowJar {
relocate("com.google.common", "r.com.google.common");
}
我还将影子jar添加到要发布的工件列表中:
artifacts {
archives jar;
archives sourcesJar;
archives javadocJar;
archives shadowJar;
}
然而,影子jar的依赖项列表仍包含" normal"的所有依赖项。 jar,即使它内置了所有依赖项。
这是预期的行为吗?如何让影子jar排除这个或那个依赖?
答案 0 :(得分:1)
在工作中我们遇到了同样的问题,我们只是把它放在我们的一个项目的build.gradle
中:
def installer = install.repositories.mavenInstaller
def deployer = uploadArchives.repositories.mavenDeployer
[installer, deployer]*.pom*.whenConfigured { pom ->
pom.dependencies.retainAll {
it.groupId == 'our.group.id' && it.artifactId == 'some-api'
}
}
这将删除pom.xml
中的所有依赖项,除了对我们的某个API项目的依赖。
(这是official Gradle documentation中一个例子的非常逐字的副本。)