2015-09-16 22 views
1

我在gradle這個文件中的以下條目如何使用僅根據文件相關的gradle中而不是指定的groupId:的artifactId:VERSIONID

dependencies { 
    compile 'org.A:A:1.0' 
} 

其下載'org.B:B:1.0' (這在gradle中沒有明確提到)

我想在我的項目中使用的是A *和B *,分別是A和B的陰影(已更改的名稱空間)。

現在,我已經指定了A *的依賴作爲

dependencies{ 
    compile file('libs/A*.jar') 
} 

但是,這仍然一個下載'org.B:B:1.0'

如何聯結的gradle這個來使用文件('libs/B * .jar')

+0

爲什麼在項目中兩次提到'A * .jar'?曾經作爲文件依賴和一次作爲Maven依賴? – Nitram

+0

對於它是maven依賴項,但對於A *它是文件依賴項。最終,我只想要文件依賴性。 – sykik

+0

那麼,爲什麼你不移除maven依賴? – Nitram

回答

0

,想到的第一個解決辦法是排除compile 'org.A:A:1.0'

的傳遞依賴這是這樣的:

dependencies { 
    compile('org.A:A:1.0') { 
     exclude 'org.B:B:1.0' 
    } 
} 

看一看的Gradle User Guide關於這一議題的更多細節。

0

正如在評論中提到的,文件依賴關係不能具有傳遞依賴性。所以A*.jar或者有B.jar的內容以某種方式捲入它,或者你在其他地方的構建路徑上有B.jar

文件依賴通常是最後的手段,他們不參與衝突解決;你需要一個依賴庫,如mavenivy

相關問題