1、什么是gradle
gradle是一种结合了ant和maven两者优势的下一代构建工具,既有ant构建灵活性的优点,也保留maven约定优于配置的思想,在灵活构建和约定构建之间达到了很好的平衡。
2、安装gradle
(1)gradle属于解压配置即可使用的软件
下载解压gradle-4.1-all.zip,例如解压到:d:/ gradle-4.1
(2)window中设置gradle环境变量:
- gradle_home d:/ gradle-4.1
- path d:/ gradle-4.1/bin(或者:%gradle_home%\bin)
(3)开始->运行->cmd,输入如下命令:gradle -v
3、gradle构建脚本
每一gradle构建脚本都包含三个基本构建块:project、task和property。每一个构建中至少包含一个project,进而包含一个或多个task(project和task可以分别理解为ant构建工具中的<project>和<target>标签)。project和task暴露的属性可以用来控制构建,project本身自带很多task并且和通过引入新的插件来引入新的task,task中包含各种构建方法来执行项目构建,例如:clean、build等常见的构建方法。
(1)、创建一个空白的build.gradle构建脚本
项目目录结构(假如其中demo为d:\demo):
- demo
- |--build.gradle(d:\demo\build.gradle)
执行如下命令:
d:\demo>gradle tasks
执行结果输出:
(2)、创建一个包含有java plugin的构建脚本
项目目录结构(假如其中demo为d:\demo):
- demo
- |--build.gradle(d:\demo\build.gradle)
build.gradle 构建脚本内容:
1
|
apply plugin: 'java' <br> |
执行如下命令:
d:\demo>gradle tasks
执行结果输出(部分):
总结:对比上面两 个构建脚本gradle tasks 命令输出的结果,加了apply plugin: 'java' 插件的构建脚本要多出了 build tasks 等任务,从第二个 build tasks 任务中能够看到,gradle 构建的常用命令 build、clean等,由此可以知道通过引入插件,就可以增加相应的构建功能。
4、gradle案例实战
(1)、基于约定由于配置构建项目
基于约定的项目目录结构图(和maven默认目录结构一致):
gradle采用了maven约定优于配置的思想,只要按照一定的项目目录结构,构建插件将能都自动找到需要构建的文件进行项目构建,构建如此的简单。下面是一个标准的项目目录结构
项目目录结构(假如其中demo为d:\demo):
- demo
- |--src
- |----main
- |------java
- |--------com
- |-----------hello
- |--------------hello.java(d:\demo\src\main\java\com\hello\hello.java)
- |------resources
- |----test
- |------java
- |------resources
- |--build.gradle(d:\demo\build.gradle)
hello.java 内容(只是一个简单的java类,自己可以任意写)
1
2
3
4
5
|
public class hello{ public static void main(string[] args){ system.out.println( "hello ant" ); } }<br> |
build.gradle 内容(只需要引入java 插件)
1
|
apply plugin: 'java' |
进入d:\demo目录在命令行执行 gradle clean build 命令后的目录结构:
生成了标准的build输出目录
- demo
- |--build
- |----classes
- |------java
- |--------main
- |----------com
- |------------hello
- |---------------hello.class(d:\demo\build\classes\java\main\com\hello\hello.class)
- |----libs
- |-------hello.jar(d:\demo\build\libs\hello.jar)
- |--src
- |----main
- |------java
- |--------com
- |-----------hello
- |--------------hello.java(d:\demo\src\main\java\com\hello\hello.java)
- |------resources
- |----test
- |------java
- |------resources
- |--build.gradle(d:\demo\build.gradle)
(2)、灵活定制构建项目
当构建历史遗留项目,由于项目目录结构的高度自由,gradle可以通过简单的配置即可完成项目构建
下面是一个非标准的项目目录结构(hello.java并未位于标准的目录中):
项目目录结构(假如其中demo为d:\demo):
- demo
- |--src
- |------com
- |---------hello
- |--------------hello.java(d:\demo\src\com\hello\hello.java)
- |--build.gradle(d:\demo\build.gradle)
build.gradle 内容(只需要简单的指定源文件目录和编译输出目录,即可定制构建)
1
2
3
4
5
6
7
8
9
|
apply plugin: 'java' sourcesets{ main{ java { srcdirs = [ 'src' ] //指定了java源文件目录为src而不是默认的src/main/java } } } builddir = 'out' //指定输出目录为out而不是默认的build |
进入d:\demo目录在命令行执行 gradle clean build 命令后的目录结构:
输出目录名称变成了out,但是out中的编译生成文件目录等都按照了标准生成
- demo
- |--out
- |----classes
- |------java
- |--------main
- |----------com
- |------------hello
- |---------------hello.class(d:\demo\out\classes\java\main\com\hello\hello.class)
- |----libs
- |-------hello.jar(d:\demo\out\libs\hello.jar)
- |--src
- |------com
- |---------hello
- |--------------hello.java(d:\demo\src\com\hello\hello.java)
- |--build.gradle(d:\demo\build.gradle)
通过上面两个简单的java项目(基于约定由于配置构建项目 和 灵活定制构建项目)构建能够很明了的提现gradle基于约定构建的简单快速和制定构建的灵活
5、gradle优缺点
优点:基本结合了以往项目构建工具(ant和maven)的所有优点,是构建工具的首选
缺点:相对较高的理解学习成本
6、gradle的特性
gradle使用groovy作为脚本语言的构建工具,而groovy是基于jvm的动态语言,它对java有着先天的兼容性,你甚至可以在构建脚本中编写java程序。
gradle不像ant和maven那样使用xml编写脚本,它使用的是groovy,这意味着你在编写脚本的时候更像是在写程序,而不是编写充满尖括号又不好阅读xml文件。
gradle像maven一样遵循约定优于配置的原则,也就是说你的项目只要按照标准约定搭建起来,你只需要做简单的配置就可以构建你的项目了。
gradle支持现有的maven仓库,所以你可以很方面地利用maven上的所有库。
gradle支持依赖传递,也就是说当a库依赖b库的时候,你只需要引用a库就可以了,gradle会自动帮你依赖b库。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/u010950924/article/details/83035450