gpt4 book ai didi

gradle - 在 gradle 复制任务中动态设置文件权限

转载 作者:行者123 更新时间:2023-12-03 03:04:37 25 4
gpt4 key购买 nike

我试图解决一个问题,即我的构建中的依赖项是一个包含一些只读文件的 zip 文件。当我将该 zip 解压为构建的一部分时,我最终在暂存文件夹中得到只读文件,它们会阻止任务在未来运行,因为它们无法被覆盖。

直到有一种方法可以在 gradle 复制任务中强制覆盖我一直在尝试找到一种方法来更改只读文件的文件模式,而不是从那些文件中删除执行位需要它。

我想出了这个:

task stageZip(type: Copy) {
from({ zipTree(zipFile) })
into stagingFolder

eachFile {
println "${it.name}, oldMode: ${Integer.toOctalString(it.mode)}, newMode: ${Integer.toOctalString(it.mode | 0200)}"
fileMode it.mode | 0200
}
}

但这行不通。如果我注释掉 fileMode 行,则 println 会正确列出新旧文件模式,并为所有文件启用写入位。如果我保留代码不变,那么 zip 中的所有文件都会使用第一个文件的 newMode 进行提取。

这似乎不是一件不合理的尝试和做的事情,但我显然做错了什么。有什么建议吗?

最佳答案

基于 this thread ,考虑 Sync task .具体来说:

task stageZip(type: Sync) {
from zipTree('data/data.zip')
into 'staging'
fileMode 0644
}

我已经举了一个工作示例(据我了解这个问题)here .

关于gradle - 在 gradle 复制任务中动态设置文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com