gpt4 book ai didi

gradle - Gradle-将文件复制到项目根目录时出错

转载 作者:行者123 更新时间:2023-12-03 03:07:59 24 4
gpt4 key购买 nike

每当我尝试使用“复制”任务将文件复制到项目的根目录(我正在运行gradle的文件夹)时,都会出现以下错误:

Failed to create MD5 hash for file content.



我以为这与我从Artifactory提取的文物有关,但这似乎无关。我可以用最少的脚本获得相同的结果。

我的操作明显有问题吗,还是Gradle故意禁止了这些事情?

task fails(type:Copy) {
from 'build/someFile.txt'
into new File('.').absolutePath
}

task works(type:Copy) {
from 'build/someFile.txt'
into new File('.').absolutePath + '/output'
}

最佳答案

简短答案:不要复制到项目目录中,最好使用into "$buildDir/someFolder",以便将文件夹隔离到此单个任务,并使用gradle clean清除它

详细答案: Gradle的核心是对每个任务执行“UP-TO-DATE”检查。如果Gradle自上次执行任务以来未发现任何更改,它将使用旧结果而不是再次执行。

通过对任务输入和任务输出进行“散列”来实现最新检查。由于您使用的是into '.',这意味着项目目录的全部内容都被视为任务输出(错误)

Gradle使用.gradle文件夹存储临时文件(例如任务哈希),因为Gradle试图读取相同的文件(以计算任务输出的“哈希”),其中的某些文件可能已被锁定以进行写入,从而导致错误看到

*编辑*

如果出于遗留原因需要复制到项目目录中,则可以直接使用Project.copy(...)代替Copy任务。在这种情况下,您可以手动管理任务输入/输出

例如

task customCopy {
inputs.file "$buildDir/someFile.txt"
outputs.file 'someFile.txt'
doLast {
copy {
from "$buildDir/someFile.txt"
into '.'
}
}
}

关于gradle - Gradle-将文件复制到项目根目录时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874041/

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