【问题标题】:Gradle: Declaring dependency in top level and sub module- which is used?Gradle:在顶级和子模块中声明依赖关系-使用哪个?
【发布时间】:2016-04-15 22:46:33
【问题描述】:

当在顶层build.gradle和子模块build.gradle中声明不同的依赖versions时,哪个优先?

例如,如果在我的顶级 build.gradle 我有 junit:junit:4.8.2 但在子模块中有 junit:junit:4.10

另外,在顶级 build.gradle 中声明依赖项有什么作用?是否应该在子模块中声明所有依赖项?

【问题讨论】:

    标签: java android gradle dependencies build.gradle


    【解决方案1】:

    // root build.gradle
    subprojects {
        dependencies {
            compile "junit:junit:4.10"
        }
    }
    

    // submodule build.gradle
    dependencies {
        compile "junit:junit:4.8.2"
    }
    

    本质上与拥有

    相同
    // submodule build.gradle
    dependencies {
        compile "junit:junit:4.8.2"
        compile "junit:junit:4.10"
    }
    

    这意味着您在子模块中声明了两个版本的 junit。现在 Gradle 冲突解决方案在这里开始了。默认分辨率为 依赖冲突是选择较新的版本。所以 junit 4.10 将被选中。要更改此行为,您可以配置解析策略。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-24
      • 2011-03-27
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      相关资源
      最近更新 更多