Gradle:从汇编中排除分发zip任务

Gradle:从汇编中排除分发zip任务,gradle,build.gradle,Gradle,Build.gradle,我在用电话。当我运行gradle构建时(这取决于gradle Assembly),会触发distTar和distZip,最后我会得到我的发行版的tarball和zip文件。我只需要一个柏油球。同时运行这两个项目需要时间和空间(项目分布非常大) 从高级gradle构建中排除distZip的干净方法是什么?我知道我可以使用gradlebuild-xdistzip但是我想运行普通的gradlebuild。我知道可以使用build.dependsOn.remove()排除依赖项,但我认为这是不推荐的 谢

我在用电话。当我运行gradle构建时(这取决于gradle Assembly),会触发
distTar
distZip
,最后我会得到我的发行版的tarball和zip文件。我只需要一个柏油球。同时运行这两个项目需要时间和空间(项目分布非常大)

从高级gradle构建中排除
distZip
的干净方法是什么?我知道我可以使用
gradlebuild-xdistzip
但是我想运行普通的
gradlebuild
。我知道可以使用
build.dependsOn.remove()
排除依赖项,但我认为这是不推荐的

谢谢。

您可以试试:

distZip.enabled = false

由于这个问题,我们的一个gradle版本开始失败。正如上面TmTom所提到的,完整的解决方案是

task deleteZip {
    configurations.archives.artifacts.removeAll {it.file =~ 'zip'}
}

tasks.install.dependsOn(deleteZip)
如果TAR也很麻烦,请添加:

    configurations.archives.artifacts.removeAll {it.file =~ 'tar'}

对于其他搜索:应用程序插件隐式应用分发插件。当您同时使用时,
gradle安装将失败,因为它尝试上载zip。解决方案是删除zip工件,如下所示:
configurations.archives.artifacts.removeAll{it.file=~'zip'}
这对我来说很接近,但我需要一个doLast块:
task doNotUploadDistribution{doLast{configurations.archives.artifacts.removeAll{it.classifier='distribution}