2014-12-02 51 views
0

如果兩個工件對它們各自的組有兩個不同的值,那麼兩個工件在依賴性解析方面是否被認爲是相同的?例如,將兩個工件何時被認爲是相等的?

  • COM。實例:神器

  • 組織。實例:神器

解決我的類路徑(默認情況下gradle會選擇最新的)神器相同的版本?或者我會得到工件的兩個副本(因爲Gradle認爲工件不同並將它們放在類路徑中)?

回答

3

如果Gradle具有匹配的組,名稱和版本,則認爲它們是唯一的。在你的例子中,這兩個依賴關係而不是被認爲是相同的,因爲它們具有不同的組,因此將被複制。如果您事先知道存在這樣的重複,則可以聲明module replacement

dependencies { 
    modules { 
    module("com.example:artifact") { 
     replacedBy("org.example:artifact") 
    } 
    } 
} 
+0

「...如果他們有匹配的組,名稱和**版本**」,但我認爲具有相同名稱和組但不同版本的兩個依賴關係會自動解析爲最新版本默認)。 – dcow 2014-12-02 20:40:47

+0

這是正確的。 – 2014-12-02 23:58:34

+0

我已驗證[此答案正確](https://github.com/dcow/dependency-conflict)。謝謝。 – dcow 2014-12-03 03:27:16