我被迫在这个项目中使用Gradle 2.3。
我正在尝试将一组依赖项从自定义配置复制到特定目录。
如果我手动删除其中一个文件,Gradle仍会将任务标记为UP-TO-DATE,我最终会得到一组不完整的文件。
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是否已修复,是否有比我目前更好的解决方法?
答案 0 :(得分:0)
您可以随时使用
运行它outputs.upToDateWhen { false }
或不使用类型复制作为您的任务和
task copyFiles {
doLast {
copy {
from configurations.zips
into 'zip-dir'
configurations.zips.allDependencies.each {
rename "-${it.version}", ''
}
}
}
}
请注意,这是解决方法而不是解决方案