所以我遇到了这种奇怪的行为,想不出原因,也找不到解决方案。我的build.gradle中有一个压缩任务,它应该将所有内容压缩到一个目录中,并将压缩文件放在同一个目录中。看起来是这样的:
task combinedFilesZip(type: Zip) {
from "${buildDir}/Release-Artifacts/Release-1"
archiveName = "${project.name}-${project.version}-AllFiles.zip"
destinationDir = file("${buildDir}/Release-Artifacts/Release-1/")
}这个任务本质上不会终止并永远持续下去,但在检查文件系统时,我可以看到正在创建zip,但它的大小在2-3 GB之间,这绝对是错误的。尝试解压缩此工件时出现错误
然后我改变了:destinationDir = file("${buildDir}/"
然后,突然,zip任务几乎立即执行,所有正确的东西都在zip中。对此有什么解释吗?有没有办法将创建的zip文件放在正在压缩的同一目录中?
发布于 2019-02-23 02:45:28
这看起来像是zip任务中的一个bug。在创建归档文件时,zip任务将文件作为字节数组块从目录中读取,并将其创建的zip文件写入同一目录。并开始读取和压缩它创建的zip文件。这就产生了一个无限的循环。
我用gradle 4.10.2测试了这一点,它的行为不是这样的。您可以尝试升级您的gradle。如果您不能这样做,您可以尝试在zip任务中排除zip文件名,如下所示
task combinedFilesZip(type: Zip) {
from ("${buildDir}/Release-Artifacts/Release-1"){
exclude "${project.name}-${project.version}-AllFiles.zip"
}
archiveName = "${project.name}-${project.version}-AllFiles.zip"
destinationDir = file("${buildDir}/Release-Artifacts/Release-1/")
}https://stackoverflow.com/questions/54830119
复制相似问题