gradle - 手动删除文件后,Gradle Copy任务是最新的

标签 gradle

我被迫在该项目中使用Gradle 2.3。

我正在尝试将一组依赖项从自定义配置复制到特定目录。

如果我手动删除其中一个文件,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修复了哪个问题和版本,并且有比我到目前为止更好的解决方法吗?

最佳答案

您可以始终使用

outputs.upToDateWhen { false }

或不为您的任务使用复制类型
task copyFiles {
    doLast {
       copy {
          from configurations.zips
          into 'zip-dir'
          configurations.zips.allDependencies.each {
          rename "-${it.version}", ''
          }
       }
    }
}

请注意,这是解决方法,而不是解决方案

关于gradle - 手动删除文件后,Gradle Copy任务是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406680/

相关文章:

kotlin - 无法将 kotlinx 添加到新的 Kotlin/JS 项目中

gradle - 获取完整的gradle项目依赖项列表

xml - Gradle zip如何为XML操作添加过滤器

java - 如何使用私有(private) Gitlab 存储库中的 Maven 组件?

java - Groovy AST 转换 - 如何使用 Gradle 和 Intellij IDEA 编译 java 带注释的类

java - 如何将 gradle 多项目存储库作为 git 子模块包含在另一个 gradle 项目中

java - Gradle 依赖项 - 未找到类

gradle - 包括具有相同插件依赖项的第 3 方子项目

gradle - 如何在 Gradle 上检查 buildscript 插件的版本?

android - 无法找到可选库 : android. test.runner