Gradle入门教程(二):Gradle项目结构与属性配置
2.1 声明式(Conventions)
“Conventions”这个词有人将它翻译成“约定式”,有人将它翻译成“声明式”,我更倾向于后者,所以我在这个系列的博客中都会成其为声明式。
在第一部分中我们提到过,Gradle吸收了Maven的声明式的特点,所谓声明式直接的体现就是我们将特定的文件(如代码、资源文件)放在特定的目录下,Gradle会自动地在相应的目录下找到对应的文件,减少了需要自定义的构建脚本。
2.2 实例讲解项目结构
在Idea中新建一个用Gradle构建的Java项目:
注:请确保你的Idea已经配置好Gradle,可以在settings->Build,Execution,Deployment->Gradle中查看
项目创建完成之后,目录结构如下图:
- .gradle文件夹:存放Gradle的缓存,缓存可用于加快构建速度
- .idea文件夹:Idea生成的,与Gradle无关,略
- gradle->wrapper:当前版本下gradle文件夹中只含有wrapper文件夹,用于存放GradleWraper的jar包以及配置文件
- src文件夹:用于存放源代码、资源文件等。这个文件夹不是由Gradle声明,而是由java插件声明
- build.gradle:根目录下的build.gradle文件,是项目的构建脚本,可以说是Gradle项目最重要的文件
- gradlew、gradlew.bat:Gradle Wrapper的执行脚本,分别适用于类Unix系统和windows系统
- settings.gradle:项目的设置文件,最重要的作用是用于设置Multi-Project构建时哪些project参与构建
(注:Gradle Wrapper、插件、Multi-Project等内容在之后的章节会讲)
现在我们新建一个测试类,然后在命令行中执行gradlew build
命令构建项目,项目的根目录下会产生一个build文件夹(如果是用Idea图形化构建的话生成的是out文件夹,这与Idea的设置有关):
- build文件夹:Gradle构建后的所有产物都会放在此,包括class文件等
2.3 配置Gradle的属性
Gradle提供了许多种配置属性的方式:
-
Gradle安装目录下的
gradle.properties
文件 -
项目根目录下的
gradle.properties
文件 -
环境变量
GRADLE_USER_HOME
所指向目录的gradle.properties
文件 -
通过命令行设定的系统属性
注意: 如果同一个属性同时被以上两种(含)以上的方式指定,则编号大的方式优先。
举例一些可供设置的属性:
- org.gradle.caching=(true,false) 当设置为true时启用缓存功能,缓存可以加快构建速度
- org.gradle.console=(auto,plain,rich,verbose) 用于设置gradle控制台的显示字体、颜色等
- org.gradle.daemon=(true,false) 设置为true时启用守护进程进行build
- …
注: 更多属性请查阅官方文档