Gradle入门(一)Gradle简介

Gradle简介

Java的构建,经历了从Ant-->Maven->Gradle的过程,每一次的进步,都是为了解决之前的工具带来的问题:
  • Ant:Ant的功能虽然强大,但过于灵活,规范性不足,对目录结构及build.xml没有默认约定,且没有统一的项目依赖管理。
  • Maven:Maven解决了规范性的问题,也顺带解决了依赖项统一管理的问题,但由于规范性太强,灵活性不足,pom.xml采用Xml结构,项目一大,Xml就显得冗长。
  • Gradle:综合了Ant和Maven的优点,吸收了Ant中task的思想,然后把Maven的目录规范以及仓库思想也融合了进来,但允许用户自由的修改默认的规范(如,可随意修改源码目录),配置文件则采用Groovy语言来书写,Groovy是一门可编程语言,配置文件本身就可以视为一份源代码,并最终交由Gradle来处理执行。
接下来的内容主要基于伯乐网的Gradle入门系列来展开,结合自己在Intellj idea上的实践来展开。



Gradle 安装
Gradle的安装非常简单,按照官方教程,目前最新的Gradle构建版本已经到了3.4.1了。你可以从Gradle Web Site下载到相关的Gradle版本及User Manual。
首先,Gradle可在大多数的操作系统上运行,而只要求你安装的Java JDK or JRE的版本≥7。检测Java版本请使用:
$ java -version
java version "1.8.0_60"
如果你使用Gradle Wrapper来管理已有的基于Gradle的构建工程,你不需要事先安装Gradle,只需要运行gradlew  或gradlew.bat指令即可(Download Gradle From Website)。一般来说,工程上推荐在Gradle Wrapper上配置好使用的Gradle版本,并通过gradlew指令临时下载Gradle进行构建,这样子可以及时的更新Gradle版本,并保持各个项目成员Gradle版本的一致性。Gradle Wrapper将定位和使用Gradle(如果已经安装指定版本),否则通过网络下载,这可以通过gradlew tasks 指令来查看:
$ ./gradlew tasks
Downloading https://services.gradle.org/distributions/gradle-3.4.1-bin.zip
...
Gradle官网上的Zip文件可以分为2种:
  • 二进制文件
  • 完整版(包含了文档及源码)
这里给官方文档路径:https://gradle.org/docs,很浅显的英文,很容易看懂。
在Window下,直接解压Zip文件,然后在系统环境变量中先配置好GRADLE_HOME,指向Gradle工具根目录,而后在Path变量中添加GRADLE_HOME/bin目录。
在Linux下,则使用Unzip指令解压Zip,使用tar指令解压tar包,并修改/etc/profile文件,添加环境变量,如下:
$ mkdir /opt/gradle
$ unzip -d /opt/gradle gradle-3.4.1-bin.zip
$ ls /opt/gradle/gradle-3.4.1
LICENSE  NOTICE  bin  getting-started.html  init.d  lib  media

配置环境变量(/etc/profile),并利用Source指令使配置生效。
 $ export PATH=$PATH:/opt/gradle/gradle-3.4.1/bin

验证安装是否成功,利用gradle -v 查看当前安装版本:
$ gradle -v
------------------------------------------------------------
Gradle 3.4.1
------------------------------------------------------------

Gradle构建简介
Gradle中有两个基本概念,即项目与任务:
项目是工程的构建产物(如Jar包)或实施产物(用以部署到生产环境,如war)。一个项目中包含一个或多个任务。
任务则是不可分的最小工作单元,执行构建工作(如编译项目或执行测试)
每一次Gradle的构建都包含一个或多个项目,示意图如下:
Gradle中使用以下配置文件对Gradle的构建进行配置:
1、Gradle构建脚本(build.gradle):指定了一个项目和它的任务,每个gradle工程都必须有的文件。
2、Gradle属性文件(gradle.properties):用于配置构建属性。
3、Gradle设置文件(gradle.settings):对于单一项目的构建而言是可选的,如果打算构建多项目,则必须存在。它描述了哪一个项目参与了构建,每一个多项目的构建都必须要在项目结构的根目录中加入一个settings文件。

Gradle插件:

gradle的设计理念是,所有有用的特性都由Gradle插件提供,它可以:

  • 在项目中添加新的任务
  • 为新加入的任务提供默认配置,这个默认配置会在项目中注入新的约定(如源文件路径)
  • 加入新的属性,可以覆盖插件的默认配置属性。
  • 为项目加入新的依赖。
Gradle用户手册提供了一系列的标准Gradle插件。

在我们为项目加入Gradle插件时,我们可以根据名称或类型来指定Gradle插件。我们可以将下面这行代码加入到build.gradle文件中,它通过名称指定Gradle插件(这里的名称是foo):

apply plugin: 'foo'

另一方面,我们也可以通过类型指定Gradle插件,将下面这行代码加入到build.gradle文件中(这里的类型是com.bar.foo):

apply plugin: 'com.bar.foo'

Intellij Idea搭建Gradle工程
首先,打开idea,新建工程,选择Gradle工程:


而后,设置GroupId和Artifactid,这里 GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。



  • 这里选择Use auto-import,以便于在Gradle脚本发生变化时,自动去管理依赖。
  • Create directories for empty content roots automatically,如果勾选了,则会自动创建好相应的src和test目录。也可以手动创建或基于Gradle脚本创建工程的默认目录结构。
  • 可以使用default gradle wrapper,但它会自动去下载gradle,下载过程一般很慢。也可以选择本地安装的gradle(use local gradle distribution)




建好的工程如下所示,其中build.gradle是本工程的工程构建文件,我们可以在其中添加依赖或任务,而settings.gradle则是用于多项目构建使用,可删除。如果前面勾选了自动创建工程则将创建好相应的目录。
顺便记录下比较好用的Maven仓库:
1、http://maven.aliyun.com/nexus/content/groups/public
2、http://mvnrepository.com/
3、http://search.maven.org/


Gradle相关材料汇总
GitBook上有不少关于Gradle的相关翻译内容,陆续汇总中:
  1. Gradle User Guide中文版:https://www.gitbook.com/book/dongchuan/gradle-user-guide-/details
  2. Gradle Plugin User Guide:https://www.gitbook.com/book/chaosleong/gradle-for-android/details
  3. Android Gradle插件中文指南:https://gradle-guide.books.yourtion.com/


参考内容:
[1]Gradle入门系列:http://blog.jobbole.com/tag/gradle/
[2]Gradle十分钟上手指南:http://www.cnblogs.com/yjmyzz/p/gradle-getting-start.html
[3]Gradle官方文档:https://docs.gradle.org/3.4.1/userguide/userguide.html




你可能感兴趣的:(Gradle)