2017-10-19 107 views
0

我有一個項目,包括像這樣的一個子項目:如何從Gradle測試中調用Gradle子項目的任務?

Root Project 
|----gradle.build 
|----SubProject 
|----|----gradle.build 

子項目這裏有許多我需要在根項目的測試命令被稱爲所謂的複製腳本。

所以我試圖調用子項目的任務,在這樣的根項目:

Task myTest(type: Test) { 
    Project(‘:SubProject’).tasks.myCopyTask.execut() 
} 

然而,這導致一個錯誤「無法爲任務集獲得未知屬性‘myCopyTask’。」

你知道這個調用應該如何完成,以及正確的語法應該是什麼?

回答

1

有多重的東西不是在你的榜樣工作:

  1. 你應該從未呼叫execute的任務! 從不!任務由Gradles任務系統自動調用,調用execute可能會中斷此係統。
  2. 創建任務時使用的關閉({ })用於配置。當任務被執行時,它不會被執行,而會在被創建時被執行。
  3. 創建並評估Gradle中的子項目創建並評估根項目。因此,當根項目得到評估時,子項目的任務甚至不存在。

您可以通過使用dependsOn法與絕對任務路徑解決所有這些問題:

task myTest (type: Test) { 
    dependsOn ':Subproject:myCopyTask' 
} 
相關問題