版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Chapter1:Gradle基础概念
1.1 项目和任务
- 项目和任务:每一次构建都包括至少一个项目, 每一个项目又包括一个或多个任务。每个build.gradle文件都代表着一个项目, 任务定义在构建脚本里。当初始化构建过程时,Gradle会基于build文件组装项目和任务对象。一个任务对象包含一系列动作对象, 这些动作对象之后会按顺序执行。
1.2 构建生命周期
Gradle的构建的三个阶段:
- 1.初始化:项目实例被创建。如果一个项目有多个模块, 并且每一个模块都有其对应build.gradle文件,那么就会创建多个项目实例。
- 2.配置:构建脚本会被执行, 并为每个项目实例创建和配置任务。
- 3.执行:Gradle决定哪个任务会被执行。任务被执行取决于开始该次构建的参数配置和该Gradle文件的当前目录。
1.3 构建配置文件
每一个基于Gradle构建的项目, 都应该至少有一个build.gradle文件。Android的构建文件中, 有一些元素是必需的:
//实际构建配置的地方 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
在repositories代码块中, JCenter库被配置为整个构建过程的依赖仓库;在dependencies代码块中,定义了一个依赖。这就是Android插件的来源。
插件用于扩展Gradle构建脚本的能力。在一个项目中应用一个插件,该项目就可以使用该插件预定义的一些属性和任务。
如果构建一个应用,那么需要申请的插件是:
apply plugin: 'com.android.application'
如果构建一个依赖库,那么需要申请的插件是:
apply plugin: 'com.android.library'
- 注意:一个模块只能为Android应用模块和Android依赖模块之一。
1.4 项目结构
- 参考项目目录结构:
1.5 Gradle Wrapper
Gradle Wrapper 可以避免Gradle发展过程中新版本打破向后的兼容性。在使用Gradle构建且脱离Android Studio开发时,推荐使用Wrapper。
命令:生成Wrapper文件(不指定版本默认当前使用Gradle的版本)
gradle wrapper --gradle-version 5.6.3
生成的Wrapper文件主要包括三部分:
- 1.batch文件。(Linux和Mac上为shell脚本)
- 2.batch文件或shell脚本需要用到的jar文件。
- 3.properties文件。
1.6 参考资料
- Gradle For Android