我正在使用distribution plugin。当我运行依赖于 gradle assemble 的 gradle build 时,distTar
和distZip
都会被触发,我最终都会遇到tarball和我的发行版的zip文件。我只需要一个tarball。同时运行时间和空间消耗(项目分布非常大)。
从高级gradle构建中排除distZip
的干净方法是什么?我知道我可以使用gradle build -x distZip
,但我希望运行简单的gradle build
。我知道依赖关系可以用build.dependsOn.remove(<name>)
排除,但我看到它被描述为不推荐。
感谢。
答案 0 :(得分:27)
您可以尝试:
distZip.enabled = false
答案 1 :(得分:1)
由于此问题,我们的一个gradle版本开始失败。如上面的TmTom所述,完整的解决方案是
task deleteZip {
configurations.archives.artifacts.removeAll {it.file =~ 'zip'}
}
tasks.install.dependsOn(deleteZip)
如果焦油也很麻烦,请添加:
configurations.archives.artifacts.removeAll {it.file =~ 'tar'}
答案 2 :(得分:0)
如果您已经配置了这样的其他发行版
distributions {
mySpecialDistribution {
contents {
duplicatesStrategy = 'INCLUDE'
...
}
}
您必须禁用分发特定任务:
mySpecialDistributionDistZip.enabled = false
为了禁用所有发行版的 distZip,您可以执行以下操作:
gradle.taskGraph.whenReady {
graph -> graph.allTasks.findAll { it.name ==~ /.*DistZip/ }*.enabled = false
}