2016-12-25 33 views
3

在項目中,我的依賴 'org.nd4j:nd4j本機平臺:0.6.0',這給我帶來了傳遞依賴:如何使用Gradle中的分類器(平臺版本)排除依賴關係?

  • 搖籃:org.nd4j:nd4j母語:Linux的ppc64le: 0.6.0
  • 搖籃:org.nd4j:nd4j母語:MacOSX的-x86_64的:0.6.0
  • 搖籃:org.nd4j:nd4j原生方式:windows-x86_64的:0.6.0
  • 搖籃:組織。 nd4j:nd4j-native:linux-x86_64:0.6.0

我想排除nd4j-native:linux-ppc64le和nd4j-native:macosx-x86_64,因爲我的應用程序不支持這些平臺。我寫在我的搖籃文件:

configurations { 
    all.collect { configuration -> 
     configuration.exclude(group: 'org.nd4j', module: 'nd4j-native', classifier: 'linux-ppc64le') 
    } 
} 

搖籃說:

Error:(44, 0) Could not set unknown property 'classifier' for object of type org.gradle.api.internal.artifacts.DefaultExcludeRule.

看來,gradle這個不被分類支持排斥。

如何排除這種傳遞性依賴?

更新:Gradle允許我們排除依賴關係,但如果我們有相同的id和group但不同的分類器有幾個依賴關係?

+0

[使用Gradle時如何排除所有傳遞依賴的實例?](http://stackoverflow.com/questions/21764128/how-do-i-exclude-all-instances-of-a - 使用gradle時的敏感依賴性) – nullpointer

+0

不重複。本主題介紹具有分類器依賴關係的具體問題。 – jreznot

回答

0

How to exclude such a transitive dependencies?

我認爲,唯一的辦法是排除所有傳遞依賴的是模塊或組,並提供手動爲您的應用程序支持的平臺庫的依賴關係。因爲分類器在依賴聲明中被支持。

同樣的方式,你可以處理的情況下,當你有相同的模塊和grooup,但有不同的分類器的依賴關係。只需用它的分類器屬性手動添加這樣的依賴關係。