在我的项目中,我对'org.nd4j:nd4j-native-platform:0.6.0'有依赖性,这给我带来了传递性依赖性:

  • Gradle:org.nd4j:nd4j-native:linux-ppc64le:0.6.0
  • Gradle:org.nd4j:nd4j-native:macosx-x86_64:0.6.0
  • Gradle:org.nd4j:nd4j-native:windows-x86_64:0.6.0
  • Gradle:org.nd4j:nd4j-native:linux-x86_64:0.6.0

  • 我想排除nd4j-native:linux-ppc64le和nd4j-native:macosx-x86_64,因为我的应用程序不支持这些平台。我在Gradle文件中编写:
    configurations {
        all.collect { configuration ->
            configuration.exclude(group: 'org.nd4j', module: 'nd4j-native', classifier: 'linux-ppc64le')
        }
    }
    

    Gradle 说:



    似乎gradle不支持分类器排除。

    如何排除这种传递依赖?

    更新:Gradle允许我们排除依赖项,但是如果我们有多个具有相同ID和组但分类器不同的依赖项,该怎么办?

    最佳答案



    我认为,唯一的方法是按模块或组排除所有传递依赖关系,并为应用程序支持的平台手动提供对库的依赖关系。因为依赖项声明中支持分类器。

    当您具有多个具有相同模块和组但具有不同分类器的依赖项时,可以使用相同的方式来处理该情况。只需使用其classifier属性手动添加此类依赖项。

    10-05 23:51