如何使用gradle正确地将依赖项添加到另一个项目?

你好,我是刚接触gradle的,这对我来说有点令人困惑。我应该如何在 gradle 配置中添加依赖项才能访问 projectA1 中的 B1.java?项目 B 是分级项目,而项目 A 只是包含另一个分级项目的文件夹。

这是我的结构:

  1. 工作:
    • 项目A
      • 项目A1
        • ...
        • 在这里,我想访问B1.java
        • build.gradle
      • 项目A2
        • ...
        • build.gradle
    • 项目B
      • 项目B1
        • B1.java
        • ...
        • build.gradle
      • 项目B2
        • ...
        • build.gradle
      • build.gradle

我试图阅读gradle文档,但对我来说并不清楚。任何帮助赞赏。谢谢!


答案 1

你应该有一个这样的结构:

ProjectA
|--projectA1
|----build.gradle
|--projectA2
|----build.gradle
|--settings.gradle
|--build.gradle

ProjectB
|--projectB1
|----build.gradle
|--projectB2
|----build.gradle
|--settings.gradle
|--build.gradle

您可以在项目中链接外部模块。

1) 在您的项目中projectA/settings.gradle

include ':projectA1',':projectA2',':projectB1' 
project(':projectB1').projectDir = new File("/workspace/projectB/projectB1")

2) 在模块中添加依赖项build.gradleprojectA1

dependencies {
    compile project(':projectB1')
}

答案 2

除非项目 A1 和 B1 位于同一个源存储库中,并且一起签出和签入,否则您确实应该依赖项目 B1 作为外部依赖项。

在 Project A1 build.gradle 中:

dependencies{
    compile 'projectB1group:projectB1module:projectB1version'
}

当然,要做到这一点,您必须首先将B1二进制文件发布到可从项目A1访问的存储库。这可以是外部联结/工件类型的 maven 存储库,也可以是本地 maven .m2 缓存,甚至是普通的旧文件系统。对于 maven 发布,请参阅或“maven-publish”插件。maven


如果两个项目位于同一个源存储库中,则应将 ProjectA 和 ProjectB 组织为根“容器”项目下的子项目。根项目不需要有自己的源代码。

在此处阅读有关在 gradle 中组织多项目构建的信息

如果根项目具有包含项目 B1 的包含行,则可以引用根项目下的任何项目,如下所示:settings.gradle

project(':B1')

因此,要将 B1 作为依赖项添加到 A1 中,在 A1 的 build.gradle 中:

compile project('B1')

推荐