Gradle:如何使用并排项目配置多项目设置

Posted

技术标签:

【中文标题】Gradle:如何使用并排项目配置多项目设置【英文标题】:Gradle: How to configure multiproject setup with side-by-side projects 【发布时间】:2011-10-23 03:34:57 【问题描述】:

我们有一个像这样设置的旧项目:

.
├── customizationProject
│   ├── ejb
│   └── services
├── projectA
│   ├── ejb
│   └── shared
├── projectB
│   └── ejb
└── projectC
    ├── ejb
    └── services

这个想法是,customizationProject 是交付应用程序的最终组装发生的地方,实际上可能有多个customizationProjects,它们可能包含多个配置。然而,这不是我想要解决的问题。

我想让customizationProject 成为gradle 项目的逻辑根项目。 如何配置各个项目,以便他们 a) 知道它们是多项目构建的一部分 b)可以正确执行,具有不同的范围,例如只运行一个子项目的测试,同时还允许在所有项目中执行所有测试?

【问题讨论】:

这个项目目前是使用不稳定的 ant 脚本构建的,它对依赖关系一无所知。我想将它迁移到 gradle... 【参考方案1】:

这是一个相当容易被 Gradle 支持的结构。将 settings.gradle 文件添加到您的自定义项目目录中,其中包含以下内容:

includeFlat 'projectA', 'projectB', 'projectC'

您可以从命令行确认项目结构:

$ gradle projects
:projects

------------------------------------------------------------
Root Project
------------------------------------------------------------

Root project 'customizationProject'
+--- Project ':projectA'
+--- Project ':projectB'
\--- Project ':projectC'

includeFlat 方法的描述可以在Gradle documentation 中找到。

希望有帮助!

【讨论】:

重要提示:需要在customizationProject(settings.gradle文件所在的位置)目录下运行gradle,否则找不到项目。 记得在你的依赖部分为每个项目添加一行:compile (project(':projectA'))

以上是关于Gradle:如何使用并排项目配置多项目设置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单个build.gradle配置向kotlin多平台项目添加依赖项

Gradle:如何在java中以编程方式声明对项目特定配置的依赖关系

如何在多模块 Gradle 项目中构建分发包?

如何使旧的 Eclipse 项目在带有 Gradle 的 Android Studio 上运行? [关闭]

如何修复 Buildship 中的“缺少 Gradle 项目配置文件”问题?

如何在 gradle 多项目构建中包含 Android 项目?