0
我不得不在这个项目中使用Gradle 2.3。手动删除文件后,Gradle Copy Task是最新版本
我想从一个自定义配置复制一组依赖关系到一个特定的目录。
如果我手动删除其中一个文件,Gradle仍会将该任务标记为“最新日期”,并最终得到一组不完整的文件。
task copyFiles(type: Copy) {
from configurations.zips
into 'zip-dir'
configurations.zips.allDependencies.each {
rename "-${it.version}", ''
}
}
虽然这在v4.0.2中按预期工作。
要解决它,我正在计算该目录中的文件。
task copyFiles(type: Copy) {
outputs.upToDateWhen {
def count = new File('zip-dir').listFiles().count { it.name ==~ /.*zip/ }
count == configurations.zips.files.size()
}
from configurations.zips
into 'zip-dir'
configurations.zips.allDependencies.each {
rename "-${it.version}", ''
}
}
哪个问题和版本的gradle是固定的,是否有比迄今为止更好的解决方法?
的确,您可以在'doLast'中使用'copy'命令而不是'Copy'任务,但这与禁用* UP-TO-DATE * - 检查此任务的方式相同。无论如何,这只会是解决方法,而不是一个真正的解决方案。 –
@ lu.koerfer他询问了更好的解决方法,这是我过去这样做的方式,你知道解决方案吗?我在Gradle 2.3中遇到了这个问题 – LazerBanana
我没有说它是一个糟糕的解决方法(但不一定比他的方法更好),这也是为什么我删除了downvote。 –