对于Android而言,我们一般依托于AndroidStudio来使用Gradle,
因此这里就不浪费笔墨单独介绍Gradle的下载和配置了。
Gradle是一个编译打包工具,但实际上它也是一个编程框架。
Gradle有自己的API文档,对应链接如下:
https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html
由此可以看出,编写Gradle脚本时,我们实际上就是调用Gradle的API编程。
1 基本组件
Project:
Gradle中,每一个待编译的工程都是一个Project。
例如,用AndroidStudio构建项目时,每一个module都是Gradle定义的Project。
Task:
每一个Project在构建的时候都包含一系列的Task。
比如一个Android APK的编译可能包含:
Java源码编译Task、资源编译Task、JNI编译Task、lint检查Task等。
对于Gradle的编译打包流程而言,Task就是最小的执行单元,
其中将调用具体的函数来完成实际的工作。
Plugin:
一个Project到底包含多少个Task,在很大程度上依赖于编译脚本指定的插件。
插件定义了一系列基本的Task,并指定了这些Task的执行顺序。
整体来看,Gradle作为一个框架,负责定义通用的流程和规则;
根据不同的需求,实际的编译工作则通过具体的插件来完成。
例如,编译Java项目时使用Java插件、编译Groovy项目时使用Groovy插件等。
举个例子来说,我们在Android APK对应的build.gradle中经常可以看到如下代码:
apply plugin: 'com.android.application'
这就是使用编译APK的插件。
同样,在编译Android Library时可以看到如下代码,用于指定使用编译Library的插件:
apply plugin: 'com.android.library'
2 具体示例
为了更好理解Gradle中的组件及编译方法,我们来看个例子。