Gradle:如何移动任务的输出?

时间:2017-02-15 20:20:41

标签: gradle

我在build.gradle中设置了buildDir,除了一个插件之外的所有插件都支持该设置。对于坚持创建build/reports/license/并将其输出放在那里的人,我想将这些文件移到我的${buildDir}

我尝试在任务中添加doLast

downloadLicenses {
    // ...
    doLast {
        file("build/reports/license").renameTo("${buildDir}/reports");
    }
}

但Gradle抱怨

  

无法在根项目' myProject'上找到参数[build_3s5ts0z1u2ed2z2xpd2pa56i $ _run_closure50 $ _closure144 @ 4d98efa4]的方法doLast()。

我在这里缺少什么,如何在任务完成后移动文件?

编辑:有问题的插件是License Gradle Plugin,我做了report this as a bug。我希望在正式修复之前找到解决方法。

2 个答案:

答案 0 :(得分:2)

这是哪个插件?

尝试以下

println downloadLicenses.class.name

这是打印任务的名称吗?我猜测有一个名为downloadLicenses的扩展对象而不是任务

假设有一个downloadLicenses任务被downloadLicenses扩展对象“隐藏”,这应该可行

tasks.getByName('downloadLicenses').doLast { ... } 

如果“build”目录是硬编码的,那么你应该提出插件的作者

的问题

答案 1 :(得分:0)

我不确定我是否理解了您的问题,但是,如果您想将文件移至$ {buildDir} / reports,我认为这应该是您的doLast块:

doLast {
    file("build/reports/license").renameTo(file("${buildDir}/reports"));
}

我希望我能帮到你!