首页 > 解决方案 > gradle 多项目构建覆盖子项中的依赖项

问题描述

在 gradle 多项目构建中:

root << applies: dependency{ 'org:module:version1' }
|- foo (version1) is ok here
|- bar (version1) not ok here, I need to use version 2

有没有办法实现这种行为?

标签: gradledependenciesmulti-projectgradle-multi-project-build

解决方案


您可以使用的替代方法是strictly关键字。在您的bar模块中,您可以编写如下内容:

dependencies {
    //Other dependencies
    compile("org:module") {
        version {
            strictly version2
        }
        because("Only version2 works in this module")
    }
}

此外,如果您检查您的bar模块依赖关系图:

./gradlew -q dependencies

你会得到这样的输出:

compileClasspath - Compile classpath for source set 'main'.
+--- project :
|    +--- org.sample:dependency:1.0
|    +--- org.sample:other-dependency:1.0
|    \--- org:module:{strictly version2} -> version2

推荐阅读