如何在Gradle中排除传递jar依赖关系?

巴肯·瓦尔丹扬

我的项目取决于依赖项A和依赖项B。

依赖项A也依赖于依赖项B,但它的版本不同。

问题出在项目A的build.gradle依赖项B中,直接使用file和fileTree方法将其作为jar包含在内:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/B.jar')
}

我的项目build.gradle如下所示:

dependencies {
    compile 'com.B:B:myvesion'
    compile('com.A:A:theirversion') {
        exclude module: 'B'
    }
}

但是我的构建因以下异常而失败:

Execution failed for task ':myproject:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/B/someclass;

我想jar从项目中排除B版本并使用我的版本。我该怎么做呢?看来该exclude指令在我的情况下不起作用。

加布里埃尔·马里奥蒂(Gabriele Mariotti)

对于jar文件,您不能这样做。

您可以排除传递依赖项(在pom文件中描述)。jar文件不是传递依赖项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Gradle 中排除 JUnit 作为传递依赖

如何从 Gradle 中构建的 JAR 中排除依赖项?

如何在Gradle生成的POM文件中排除依赖项

如何在多项目构建中排除其他子项目的传递依赖关系?

在Gradle中排除埋葬依赖关系的最佳方法是什么?

如何告诉Gradle不要在我的.jar依赖项中排除.so文件?

在Android Gradle构建中,如何从包含的jar文件中排除依赖项?

如何在ASP.NET Core中排除项目依赖关系?

Gradle依赖关系排除

如何在SBT中排除库的所有传递依赖项?

如何在Sbt中排除传递依赖(在Assembly插件的上下文中)?

如何在MSBuild中排除(禁用)PackageReference的(传递)依赖性?

Maven - 如何从生成的 JAR 中排除依赖项

如何从gradle项目依赖项中排除META-INF?

如何从(传递)依赖项中排除某些包?

如何从Gradle中的JAR中排除资源并通过IntelliJ运行

从依赖项jar中排除资源

如何在build.gradle.kts中定义变量以排除多个传递依赖项

从 Gradle 中的依赖项中排除项目

Maven-从DependencyManagement中排除传递依赖

如何在最终的sbt程序集插件中排除jar

如何在jar文件中排除Test.java类

如何排除gradle依赖

如何在实验性Gradle中排除cpp文件?

如何在Gradle KTS中排除(忽略)Android构建变体

Android Gradle从APK中排除了jar

使用 gradle 从 jar 中排除类

使用Gradle时如何排除传递依赖的所有实例?

使gradle依赖项任务在结果中排除测试依赖项