2016-02-28 38 views
0

我有這個簡單的build.gradle搖籃找不到根項目的方法,但我使用子項目

subprojects { 
    test {} 
} 

project(':module1') { 
    apply plugin: 'java' 
} 

和搖籃抱怨說,它無法找到根項目方法test()。但爲什麼它試圖在根項目上找到它?我讀here子項目不包括根項目。如果我把println name放到子項目中,我也不會在輸出中看到根項目。

回答

1

@highstakes是對的。但假設你只有一個子項目(module1),這只是一個時間問題。首先需要應用java插件,然後才能配置此插件的任務。帶你建立文件和更改順序,你會得到:

project(':module1') { 
    apply plugin: 'java' 
} 

subprojects { 
    test {} 
} 

這將工作,只要你有一個子項目。

您收到的錯誤消息是Gradle將測試{}作爲傳遞空封閉函數的函數調用,並且正在查找根項目中此測試函數的定義。由於該函數沒有被添加(通過java插件)在這個地方,你會得到這個錯誤消息。

+0

這有幫助,謝謝!這是錯誤消息困惑我,我期望「無法找到方法測試()模塊1項目」,而不是「根項目」。 – Yaroslav

1
  1. 您只爲一個子項目應用java插件,以便其他人不會有可用的測試閉包。

  2. 您可以嘗試明確應用插件給定的子項目是這樣的:

    項目( ':模塊1'){項目 - > project.apply插件:「Java的 }