因此,我遇到了这种奇怪的行为,无法想到它的原因,也找不到解决方案。
我的build.gradle
中有一个Zip任务,该任务应该将目录中的所有内容都压缩,然后将zip放入同一目录中。看起来像:
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放在要压缩的目录中?
答案 0 :(得分:0)
这看起来像是zip任务中的错误。创建存档文件时,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/")
}