首页 > 解决方案 > Gradle 多项目多个依赖项

问题描述

我有一个这样的gradle项目:

root
  |
  |---- projectA
  |
  |---- projectB
 ...

我的根 build.gradle 包含 projectA 和 projectB 所需的依赖项。我这样定义它们:

subprojects {
    repositories {
        jcenter()
        mavenCentral()
        mavenLocal()
    }
    dependencies {
        compile 'com.google.guava:guava:23.0'
        compile group: 'com.google.code.gson', name: 'gson', version: '2.8.2'

现在我正在尝试从 projectB 添加对 projectA 的依赖项,因此我的 projectB build.gradle 看起来像这样:

dependencies {
    implementation project(':projectA')
}

和projectB settings.gradle:

include ':projectA'
project(':projectA').projectDir = new File(settingsDir, '../projectA')

这目前正在失败,因为 projectA 和 B 不依赖 root 来获取所需的依赖项。

我可以在 root 上添加来自 projectA 的另一个依赖项,或者从一个根项目共享相同依赖项的默认 gradle 方法是什么?

标签: javaandroidgradle

解决方案


您的模块(A 和 B)未正确设置为根项目的子模块。在您的基本文件夹中,如有必要,创建settings.gradle文件,并添加子模块定义:

根/settings.gradle

include 'projectA', 'projectB'

projectB的build.gradle文件是ok的,那么你需要删除root/projectB/settings.gradle文件;子模块及其位置在父构建文件中指定。


推荐阅读