上一节你给你的项目定义了一个层次化的目录结构,整个项目包含一个根目录和每个模块一个子目录,这一节你将学习怎么用Gradle来构建这样一个项目结构。
首先在你的根目录新建一个build.gradle文件,创建一个空的build脚本然后运行gradle projects:
$ gradle projects
:projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'todo'
No sub-projects
接下来学习怎么通过settings.gradle来定义项目的子项目。
介绍设置文件
设置文件用来表示项目的层次结构,默认的设置文件名称是settings.gradle,对于你想添加的每一个子项目,调用include方法来添加。
//参数是项目路径,不是文件路径
include 'model'
include 'repository', 'web'
提供的项目路径是相对于根目录,记住冒号:是用来分隔目录层次,比如你想表示model/todo/items这个目录,在gradle里面是model:todo:items这样表示。接下来执行gradle projects任务:
$ gradle projects
:projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'todo'
+--- Project ':model'
+--- Project ':repository'
+--- Project ':web'
通过添加当个设置文件,你就创建了一个多项目的构建包含一个根项目和三个子项目,不需要额外的配置。
理解settings 的API表示
在Gradle开始执行构建之前,它创建一个Settings类型的实例,Settings接口直接用来表示settings文件,主要目的是通过代码来动态添加项目参与到多项目构建中,下图是你可以访问的Gradle API。
之前我们介绍过Gradle有三个生命周期,实例化阶段->配置阶段->执行阶段,Settings处于实例化阶段,Gradle自动找出一个子项目是否处在一个多项目构建中。