2017-02-15 39 views
0

我已經在build.gradle中設置了buildDir,除了一個插件外,其他所有插件都符合這個設置。對於堅持創建build/reports/license/並將其輸出放在那裏的人,我想將這些文件移動到我的${buildDir}Gradle:如何移動任務的輸出?

我嘗試添加一個doLast塊任務

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

但搖籃抱怨

根項目找不到方法doLast()爲參數[build_3s5ts0z1u2ed2z2xpd2pa56i $ _run_closure50 $ _closure144 @ 4d98efa4] '我的項目'。

我在這裏丟失了什麼以及如何在完成任務後移動文件?

編輯:有問題的插件是License Gradle Plugin,我做了report this as a bug。我希望有一個解決方法,直到它被正式解決。

回答

2

這是哪個插件?

請嘗試以下

println downloadLicenses.class.name 

那是打印任務的名稱?我猜有一個名爲downloadLicenses,而不是任務

假設有一個downloadLicenses任務是「隱藏」通過downloadLicenses擴展對象擴展對象,這應該工作

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

如果「構建」目錄硬編碼你應該提出一個問題,插件的作者

+0

謝謝,把'tasks.getByName('downloadLicenses')'放在'downloadLicenses'中的'doLast'塊前面解決了這個問題。 – Robert

0

我不知道我明白你的問題,但是,如果你想你的文件移動到$ {buildDir} /報告,我想這應該是您的doLast塊:

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

我希望我在幫助你!

+0

嗯,是的,這也是我的想法,但是,這讓我上面的錯誤。 – Robert

+0

即使在第二個路徑之前的文件中,您是否收到相同的錯誤?因爲在你的第一篇文章中沒有。 – delca85

+0

是的,我確實......如果是關於「文件(...)」,錯誤可能會非常不同。 Gradle不喜歡'doLast'。 – Robert

相關問題