gradle是以groovy语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具,是一款不可多见的实用工具。
gradle是以groovy语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具,又可以称之为groovy构建工具,能够支持强大的多工程构建,支持maven, Ivy仓库,支持传递性依赖管理,并对Ant的任务做了很好的集成,可以更容易创建不同版本的程序。另外gradle更容易重用资源和代码,更容易配置和扩展,更好的IDE集成,相信能够给广大程序员更大的惊喜。
gradle的安装非常方便,用户下载本站的ZIP包,解压到本地目录,设置 GRADLE_HOME 环境变量并将 GRADLE_HOME/bin 加到 PATH 环境变量中,安装就完成了,用户可以运行gradle -v命令验证安装,其详细的操作可参考下文。
软件特色:
1,基于声明和基于约定的构建。
2,依赖型的编程语言。
3,可以结构化构建,易于维护和理解。
4,有高级的API允许你在构建执行的整个过程当中,对它的核心进行监视,或者是配置它的行为。
5,有良好的扩展性。有增量构建功能来克服性能瓶颈问题。
6,多项目构建的支持。
7,多种方式的依赖管理。
8,是第一个构建集成工具。集成了Ant, maven的功能。
9,易于移值。
10,脚本采用Groovy编写,易于维护。
11,通过Gradle Wrapper允许你在没有安装Gradle的机器上进行Gradle构建。
12,自由,开源。
安装说明:
1,安装JDK,并配置JAVA_HOME环境变量。因为Gradle是用Groovy编写的,而Groovy基于JAVA。另外,Java版本要不小于1.5。
2,下载本站提供的gradle最新版本,官方下载地址是:http://services.gradle.org/distributions ,用户在这里下载你要的版本。
3,解压。如果你下载的是gradle-xx-all.zip的完整包,它会有以下内容:
二进制文件
用户手册(包括PDF和HTML两种版本)
DSL参考指南
API手册(包括Javadoc和Groovydoc)
样例
源代码,仅供参考使用。
4,配置环境变量。配置GRADLE_HOME到你的gradle根目录当中,然后把%GRADLE_HOME%/bin(linux或mac的是$GRADLE_HOME/bin)加到PATH的环境变量。
linux用户可以在~/.bashrc文件中配置。
配置完成之后,运行gradle -v,检查一下是否安装无误。如果安装正确,它会打印出Gradle的版本信息,包括它的构建信息,Groovy, Ant, Ivy, 当前JVM和当前系统的版本信息。
另外,可以通过GRADLE_OPTS或JAVA_OPTS来配置Gradle运行时的JVM参数。不过,JAVA_OPTS设置的参数也会影响到其他的JAVA应用程序。
gradle环境变量配置
首先明确gradle跟maven一样,也有一个配置文件,maven里面是叫pom.xml,而在gradle中是叫build.gradle。Android Studio中的android项目通常至少包含两个build.gradle文件,一个是project范围的,另一个是module范围的,由于一个project可以有多个module,所以每个module下都会对应一个build.gradle。这么说有点抽象,看下面这个图:
gradle
这是一个android工程的project视图,上面那个是module下的build.gradle文件。下面那个是project下的build.gradle文件。这两个文件是有区别的,project下的build.gradle是基于整个project的配置,而module下的build.gradle是每个模块自己的配置。下面看下这两个build.gradle里面的内容:
project#build.gradle:
注:大家可能很奇怪,为什么仓库repositories需要声明两次,这其实是由于它们作用不同,buildscript中的仓库是gradle脚本自身需要的资源,而allprojects下的仓库是项目所有模块需要的资源。所以大家千万不要配错了。
module#build.gradle:
defaultConfig中是一些基本配置,它会同时应用到debug/release版本上,下面列举了所有可配项及对应的值:
buildTypes结点很重要,这里可以配置构建的版本的一些参数,默认有两个构建版本release/debug,当然你可以自定义一个构建版本,比如叫foo,然后通过gradlew assembleFoo就可以生成对应的apk了。
buildTypes里还有很多可配置项,下面列举了所有可配项以及debug/release版本的默认值:
现在大家对build.gradle已经初步了解了,我们再看下其他一些与gradle相关的文件:
1.gradle.properties:
从名字上就知道它是一个配置文件,没错,这里面可以定义一些常量供build.gradle使用,比如可以配置签名相关信息如keystore位置,密码,keyalias等。
2.settings.gradle:
这个文件是用来配置多模块的,比如你的项目有两个模块module-a,module-b,那么你就需要在这个文件中进行配置,格式如下:
3.gradle文件夹:
这里面有两个文件,gradle-wrapper.jar和gradle-wrapper.properties,它们就是gradle wrapper。gradle项目都会有,你可以通过命令gradle init来创建它们(前提是本地安装了gradle并且配置到了环境变量中)。
4.gradlew和gradlew.bat:
这分别是linux下的shell脚本和windows下的批处理文件,它们的作用是根据gradle-wrapper.properties文件中的distributionUrl下载对应的gradle版本。这样就可以保证在不同的环境下构建时都是使用的统一版本的gradle,即使该环境没有安装gradle也可以,因为gradle wrapper会自动下载对应的gradle版本。
gradlew的用法跟gradle一模一样,比如执行构建gradle build命令,你可以用gradlew build。gradlew即gradle wrapper的缩写。
2.gradle仓库:
gradle有三种仓库,maven仓库,ivy仓库以及flat本地仓库。声明方式如下:
gradle
3.gradle任务:
gradle中有一个核心概念叫任务,跟maven中的插件目标类似。
gradle的android插件提供了四个顶级任务
gradle
执行任务可以通过gradle/gradlew+任务名称的方式执,执行一个顶级任务会同时执行与其依赖的任务,比如你执行
gradle
它通常会执行:
gradle
这时会在你项目的build/outputs/apk或者build/outputs/aar目录生成输出文件
注:linux下执行构建任务需要首先更改gradlew脚本的权限,然后才能执行该脚本:
可以通过:
列出所有可用的任务。在Android Studio中可以打开右侧gradle视图查看所有任务。