2013-07-23 93 views
28

我的許多罐子具有衝突的傳遞依賴關係(多個春天版本)。我希望通過顯式管理所有的依賴關係來避免繼承版本衝突,是否可以禁用Gradle中的所有傳遞依賴關係?Gradle,如何禁用所有的傳遞依賴關係

我知道我可以添加transitive = false到我的每個依賴,但我希望有一個更簡單的方法。

compile(group: 'org.springframework', name: 'spring', version: '2.5.2') { 
    transitive = false 
} 

回答

41

我最終使用:

configurations.all { 
    transitive = false 
} 
+2

另一種解決方案是告訴Gradle在版本衝突時失敗並明確地解決*那些問題(而不是明確地管理所有傳遞的依賴關係)。 –

+0

如果您對自己的答案感到滿意,您應該接受它,以便將問題標記爲已回答。 –

+1

@PeterNiederwieser你必須等待48小時才能接受你自己的答案。 –

6

如果你想只有一個配置部分,你可以使用傳播點運算符來表達這一切的配置。

configurations { 
    // other configurations e.g. - compile.exclude module: 'commons-logging' 
    all*.transitive = false 
}