2014-01-29 18 views
0

我們是Gradle和依賴關係解析的新手。我正在爲所有內部生成的構件創建pom.xml文件,並且希望在我們的Jenkins服務器中設置一個作業來驗證依賴關係是否已正確定義,而不是衝突(即LibA需要x-1.0.jar,LibB需要x-1.1.jar,而AppY需要LibA和LibB)。即使無法下載依賴關係,Gradle構建也會成功

因此,我已經建立了在SVN的虛擬項目,僅僅包括了一堆我們的內部構件作爲依賴。 TTD之後,我故意在聲明中包含一些錯誤(即組和名稱,但不包括版本)。果然,這些依賴關係無法找到。

但是,當我運行的gradle這個版本(即gradle這個依賴)它包括所有的失敗消息,但仍表示,構建成功了!不好!

我如何使用搖籃/詹金斯,建立自動工作,將驗證所有依賴被發現的?

回答

0

gradle dependencies設計顯示如果給定依賴關係無法解析(紅色文本FAILED在未解決的依賴項旁邊),則顯示Gradle項目依賴關係報告(如果適用)。要獲取錯誤,請使用一些依賴於解析給定配置的依賴關係的任務,如gradle check

更新。 Gradle在確定是否需要執行給定的任務時很聰明。因此,如果沒有源文件需要編譯(編譯需要依賴類/ JAR來解決)gradle check可以注意到不需要執行compileJava/compileTestJava任務(任務被跳過爲最新)。您可以通過將任何Java源文件添加到src/main/test(測試還需要生產依賴項(從compile配置))來強制執行此操作。

這只是一種變通方法,有可能是一個更好的辦法來做到這一點(我希望別人將在此介紹它)。

+0

有真正的問題:如果它不能解析相關的gradle什麼任務將失敗? 'gradle check'不會抱怨失敗的依賴關係。 當我意識到會迫使它下載依賴項時,我嘗試了'gradle eclipse',但即使這樣也不會失敗。 – user1644873

+0

我重讀了你的問題,你可能沒有任何代碼來編譯。我更新了我的答案。 –

2

沒有內置的任務,解決所有的依賴,如果依賴找不到失敗。 (IDE任務是優美的缺失的相關情況。)但是你可以很容易地編寫自己:

task resolveDependencies { 
    doLast { 
     configurations.all { it.resolve() } 
    } 
} 
相關問題