上一篇文章中提到,Gradle的核心构成之一是project,这是项目开发者最经常光顾的地方
我们现在用gradle init来创建一个项目,Project就是这个样:
├── gradle ➊ │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ❷ ├── gradlew ➊ ├── gradlew.bat ➊ ├── settings.gradle ❸ └── app ❹ ├── build.gradle ❺ └── src ├── main │ └── java │ └── demo │ └── App.java └── test └── java └── demo └── AppTest.java
➊是gradle wrapper相关文件
❷是gradle wrapper的配置,可配置gradle的版本
❸是项目根配置
❹是子项目
❺是子项目编译脚本
查看项目根配置setting.gradle:
//项目名称 rootProject.name = 'demo' //包含的子项目 include('app')
子项目是app,app/build.gradle是子项目的编译脚本。
project是可以包含多个子项目的,编译的时候,可单独编译需要的子项目,也可以整个项目一起编译。
一个包含多个子项目的setting.gradle长这样:
rootProject.name = 'gradlemulti' include('app', 'list', 'utilities')
一共包含了app, list, utilites三个子项目,目录结构如下:
$ tree gradlemulti -L 2 gradlemulti ├── app │ ├── build.gradle │ └── src ├── buildSrc │ ├── build.gradle │ └── src ├── gradle │ └── wrapper ├── gradlew ├── gradlew.bat ├── list │ ├── build.gradle │ └── src ├── settings.gradle └── utilities ├── build.gradle └── src
可见和单子项目没有结构性区别,无非是数量变多了,一个子项目一个文件夹,子项目之间是相互独立的
还可以通过gradle projects指令,获取项目的详细信息:
$ gradle projects Configuration on demand is an incubating feature. > Task :projects ------------------------------------------------------------ Root project 'gradlemulti' ------------------------------------------------------------ Root project 'gradlemulti' +--- Project ':app' +--- Project ':list' \--- Project ':utilities'
了解了gradle projects结构,我们把目光投向子项目之下的build.gradle,这是每个子项目的真正编译脚本,是指挥gradle编译的魔法棒
回复 agodelo 取消回复