【问题标题】:Gradle, different versions of direct and transitive dependenciesGradle,不同版本的直接和传递依赖
【发布时间】:2021-01-24 00:29:51
【问题描述】:

假设application module build.gradle

dependencies {
    implementation "com.example.http:core:5.1"
    implementation "com.example.common:network:1.0"
}

http核心第三方项目buid.gradle

dependencies {
    implementation "com.example.common:network:2.0"
}

(所以http的.pom内部有network 2.0的依赖)

在这种情况下,gradle 将为 applicationhttp 模块选择 2.0 版的 network 模块。
但是如何让 gradle 使用 network 的两个版本:1.0 作为直接 application 和 2.0 作为传递 http 依赖项?

【问题讨论】:

    标签: gradle build.gradle gradle-dependencies


    【解决方案1】:

    有一种技术可以解决冲突的依赖关系,称为 shadow jar。

    很方便,有一个 awesome gradle plugin 用于构建这些。

    【讨论】:

    • 这只有在你 relocate packages 时才有效,而且这并不总是容易做到的。
    猜你喜欢
    • 2016-11-30
    • 2011-12-22
    • 2019-04-07
    • 2018-01-12
    • 2020-04-12
    • 1970-01-01
    • 2017-08-21
    • 2021-10-08
    • 2015-08-24
    相关资源
    最近更新 更多