【问题标题】:Gradle filetree lazy flat copyGradle filetree 懒惰平拷贝
【发布时间】:2014-06-10 19:37:38
【问题描述】:

我有一项任务需要将在执行阶段创建的文件(它们是 gcov 单元测试阶段的产品)复制到另一个目录中。目前,我的代码只会在第二次执行时正确执行(即当目录结构中的文件已创建时)。然而,第一次,我收到“跳过任务,没有源文件”的调试消息。

task copyGcovObj(type: Copy, dependsOn: 'test') {
    description "Copies gcov files into build/testOutput directory."
    from fileTree(dir: "$buildDir/objectFiles", includes: ["**/*.gcno", "**/*.gcda"]).files
    into ("$buildDir/testOutput")
}

代码取自这里:Flat copy。所指的任务“测试”是执行单元测试的任务。

我认为问题是在配置阶段,没有要复制的文件,所以 Gradle 跳过了任务。如果第二次执行,Gradle 会看到有文件,所以执行副本。如何让 Gradle 执行复制,但要复制的文件是在执行阶段确定的?

【问题讨论】:

    标签: gradle task build.gradle


    【解决方案1】:

    frominto 接受闭包以推迟对参数的评估,所以这应该会有所帮助:

    from { fileTree(...).files }
    

    【讨论】:

    • 谢谢,这正是我所追求的。
    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2011-09-05
    相关资源
    最近更新 更多