[英]Intellij not generating module dependencies from Gradle multi-module project
[英]Access submodule dependencies from root in multi-module Gradle build
有沒有辦法在根build.gradle
中訪問子項目build.gradle
文件中聲明的依賴build.gradle
? 我試過以下——
subprojects.each { p ->
println "subproject: ${p.name}"
p.configurations.each { c ->
println " ${c}"
c.dependencies.each { d ->
println " ${d}"
}
}
}
但我猜是因為根build.gradle
首先被執行,子模塊依賴聲明還沒有運行,因為我得到的是:
subproject: foo
subproject: bar
subproject: baz
(我正在嘗試編寫一個多模塊build.gradle
來構建一堆相關模塊,這些模塊不知道它們是多模塊項目的一部分,或者可以是許多不同的多模塊項目的一部分。我的計划是以編程方式遍歷子模塊依賴項,並為每個依賴項添加相應的project
依賴項——希望做一些類似於Pieter Niederweiser的elastic-deps示例的事情,但不必修改子項目構建文件。在單模塊項目中似乎 Gradle 足夠聰明,可以使用項目依賴項來解決 Maven/Ivy 依賴項,如果它們重疊的話。)
ETA:如果有一種方法可以在頂級聲明一個代碼塊,所有子項目都將在聲明其依賴項后的某個時刻運行,那可能會這樣做。
如果有一種方法可以在頂層聲明一個代碼塊,所有子項目都將在聲明其依賴項后的某個時刻運行,那可能會這樣做。
evaluationDependsOnChildren()
可以解決問題。 在評估子項目之后,將評估此方法調用之后的所有代碼。
從 Gradle 3.2 開始,您可以簡單地調用ResolutionStrategy#preferProjectModules
。
https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html#org.gradle.api.artifacts.ResolutionStrategy:preferProjectModules()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.