持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
这篇文章我们来介绍一些gradle 的多项目配置。
在我们日常的开发的时候,一般都会有个根项目。同时,在我们创建的Gradle 项目的时候,默认就会有一个根项目。根项目对应的build.gradle 文件就存在于Gradle 项目的根目录下。
在我们想要在这个跟项目中添加多个子项目的时候,就需要通过settings.gradle 文件来进行配置。
我们首先可以在根目录中创建多个文件夹。比如说我们有3 个子项目,我们就可以在根目录中创建3 个文件夹,分别可以为:sub_proj_1 / sub_proj_2 / sub_proj_3,同时在这三个文件夹中分别创建build.gradle 文件。此时子项目虽然在根目录中,但是和根项目并没有关联关系。
这个时候我们就需要在根目录中的setting.gradle 文件中声明根项目和子项目的关系,代码如下:
include ':sub_proj_1', ':sub_proj_2', ':sub_proj_3'
这样就完成了子项目的添加,打开命令行,切换到GradleDemo目录处,输入gradle projects,就可以展示出所有项目之间的依赖关系了。
$ gradle projects
> Task :projects
Root project 'Default'
+--- Project ':sub_proj_1'
+--- Project ':sub_proj_2'
\--- Project ':sub_proj_3'
BUILD SUCCESSFUL in 377ms
1 actionable task: 1 executed
通过这个命令,我们可以发现这是个树形关系,而且这3 个子项目都是依赖于根项目的。
有了这种依赖关系,那么我们就可以利用好这种依赖关系来进行项目的配置。
配置项目一般在当前项目的build.gradle 中进行。gradle 给开发者提供了很多方法,如:dependencies方法、repositories方法、buildscript方法等等。
然而上面说的“利用好”这种依赖关系指的是,如果一个系统中有多个项目的时候,但是每个项目的某些配置又相同,如果我们在每个项目的build.gradle 文件中都配置相同的内容那未免会很繁琐且不好维护(比如说升级版本,变更依赖等等),这个时候我们就可以利用Gradle 的Project 接口来为我们简化操作了。
Project 接口中有两个方法:allprojects和subprojects。我们可以在根项目的build.gradle 文件中使用这两个方法,通过这两个方法就可以为全局的所有子项目进行配置。allprojects 和subprojects 方法的区别是:allprojects 中配置的内容的标的包括根项目;但是subprojects 中配置内容的标的不包括根项目。