2015-01-05 99 views
15

可以運行gradlew dependencies來了解模塊任務的依賴關係。有沒有辦法找到buildscript依賴項的傳遞依賴關係?對於buildScript依賴關係是否有Gradle「dependencies」任務?

實施例: classpath 'com.android.tools.build:gradle:1.0.0'直接取決於:

com.android.tools.build builder 
com.android.tools.lint lint 
net.sf.proguard proguard-gradle 
tools.base project-test-lib 

如上MVNRepository看到。但是這些工件有它們自己的依賴關係。有沒有辦法找到那些沒有手動遍歷整個依賴樹?

作爲一個澄清,我說的類路徑被定義爲:

buildscript { 
    repositories {} 
    dependencies { .... } 
} 

回答

-1

得到buildscript相關性的信息,您可以使用此命令:

gradle dependencyInsight --dependency gradle 

有Udacity的精彩教程,Gradle for Android,但您可以觀看this video以獲取更多解釋。

+0

「因爲未指定輸入配置而無法生成依賴項洞察報告」,嘗試添加'--configuration classpath',但它仍然給我提供了同樣的錯誤。也試過編譯和運行時無濟於事。有任何想法嗎? (Gradle 3.5) – TWiStErRob

+1

這個答案不正確。首先,如上面的評論所述,「dependencyInsight」任務需要通過「--configuration」選項提供配置名稱。其次,只有項目配置,而不是buildscript配置,纔會暴露於此任務。 –

1

我認爲你正在尋找Gradle's DependencyInsightReportTask

+0

你能舉一個例子如何使用它來獲取buildscript依賴關係的報告嗎? – atok

+0

只需添加任務: 任務allDepInsight(類型:DependencyInsightReportTask)<< {} 然後運行gradle allDepInsight – Mark

+0

它導致以下錯誤:執行任務':SdkTestApp:allDepInsight'失敗。 >由於未指定輸入配置,因此無法生成依賴項洞察報告。 它可以從命令行指定,例如:':SdkTestApp:allDepInsight --configuration someConf --dependency someDep' – atok

27

不幸的是沒有辦法指定構建腳本配置通過CLI隱含的dependencies任務。您必須明確定義使用您的構建腳本配置配置的類型爲DependencyReportTask的任務。

task buildscriptDependencies(type: DependencyReportTask) { 
    configurations = [buildscript.configurations.classpath] 
} 

更新:

與搖籃2.10開始,你現在可以通過

gradle buildEnvironment 
+0

不幸的是,'gradle buildEnvironment'似乎不會爲核心插件輸出任何內容。例如,對於'apply plugin:'application''來顯示依賴關係,雖然'application'插件依賴於'java'插件。 – sschuberth

+0

@sschuberth如果你只是想知道什麼插件被一個構建使用,我建議調查[構建掃描](https://scans.gradle.com/s/pqarplj4ogagg/plugins)。例如https://scans.gradle.com/s/pqarplj4ogagg/plugins。 –

+0

由於構建掃描是一種基於公共雲的服務,只有在我公開了有關我的源代碼/構建系統的詳細信息時才能正常工作,有時候我並不知道。我知道Gradle Enterprise的本地版本,但我真的更喜歡「離線」工作,並在本地磁盤上創建報告。 – sschuberth

相關問題