Gradle -- 初体验

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。Gradle是基于JVM的,所以首先需要确保已经安装好了JDK,官方文档中表示目前最新版本的Gradle需要的JDK环境是1.7以上。

官方下载地址:https://gradle.org/next-steps/?version=4.10&format=bin

官方安装文档:https://gradle.org/install/

一.Windows下的安装

1.下载安装包解压

  • bin : 存放可执行文件

  • init.d : 可存放构建脚本

  • lib : 存放库文件

  • media : 存放图标文件

2.配置环境变量

新建环境变量

Path中添加环境变量

3.cmd查看版本:gradle -v

如此,我们便成功的安装了gradle。

二.创建gradle的java工程

1.新建工程

和Maven的使用一样,我们创建工程时需要选择gradle。这里创建一个demo工程,如图:

2.工程目录

如图,gradle的工程目录结构和Maven的工程目录结构差别不是很大,其中build.gradle文件相当于Maven的pom.xml文件。也有group和version的配置。

  • apply plugin: 'java' 指定了应用的打包方式插件,我们也可以配置为war

  • repositories: 配置了仓库

  • dependencies: 管理依赖,和使用Maven一样,到中央仓库找到依赖的坐标复制过来即可(gradle坐标)

settings.gradle文件则指定了工程的名称。

3.gradle控制台

如图,我们进入到gradle的控制台,可以看到和Maven还是有些差别的。这里有一个jar, 如果我们将上一步的apply plugin : 'jar'  改为 apply plugin : 'war',那么这里会增加一个war的插件用于打包。

三.Groovy简介

Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。

Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。

Groovy特点:

  • Groovy完全兼容Java的语法

  • 分号是可选的

  • 类、方法默认是public的

  • 编译器给属性自动添加getter/setter方法

  • 属性可以直接用点号获取

  • 最后一个表达式的值会被作为返回值

  • == 等同于Java的equals(),并且不会有空指针异常

Groovy特性的高级特性:

  • 支持assert语句

  • 支持可选类型定义

  • 可选的括号

  • 支持三种字符串

  • 拥有集合API

  • 支持闭包

四.gradle的依赖管理

大多数时候,我们使用构建工具都是使用其中的依赖管理功能 就像我们之前使用的Maven一样。几乎所有基于JVM的软件项目都需要依赖外部类库来重用现有的功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖带来的版本冲突。一个jar包属于一个工件,在gradle中,工件在仓库的坐标是group、name以及version。而工件存放在仓库里,在gradle中常用的仓库有mavenLocal、mavenCentral、jcenter,其中mavenCentra和jcenter是中央仓库,mavenLocal则是本地仓库 。

依赖传递

  • 如果B依赖A,C依赖B,那么C依赖A。

依赖阶段

依赖阶段分为两个阶段,即编译阶段和运行阶段,而测试时也是分为这两个阶段。编译阶段所依赖的jar包,在运行阶段也会依赖。不同的阶段会有不同的标识 。

  • compile : 编译阶段

  • runtime : 运行阶段

  • testCompile : 测试编译阶段

  • testRuntime : 测试运行阶段

添加依赖

例如现在我需要fastjson的依赖,首先到Maven中央仓库复制fastJson的gradle依赖:

粘贴到dependencies方法中即完成了依赖的添加:

Tips: 如果发生依赖版本冲突,gradle默认可以解决版本冲突的问题,当出现两个不同版本的依赖时,gradle默认会使用最高版本那个 。

如果我们需要到多个仓库上查找依赖的时候,可以在 repositories 方法里添加仓库,gradle会按照配置先后去仓库里查找jar包,如下:

当然了,我们还是需要配置一下gradle的本地仓库的,参见:

https://blog.csdn.net/qq_36869903/article/details/79923257

五.附录

和Maven一样,我们在idea中需要配置一下.gradle的配置文件,默认在C盘。我们可以在自定义目录中通过cmd的 mkdir .gradle 创建目录并在这里进行配置:

经测试,在未配置本地仓库的时候,缓存的jar包会保存的.gradle的目录下。

(0)

相关推荐

  • AndroidStudio Gradle 和 Gradle plugin的区别

    作为Android开发工程师,AndroidStudio就是开发利器,而安卓App的日常开发离不开 Gradle 和 Gradle plugin这个东西,很多安卓工程师对这两个东西的了解并不太深入,只 ...

  • 得明亲子春令营初体验

    孩子身体的毛病,年龄越大,越难以根除,在无意识中影响他一生的发展,为解决这样的问题,得明健身在五一期间,特推出为期四天的,亲子春令营,锻炼.经络体检(建档并跟踪追访),给孩子一个健康光明的未来!!! ...

  • 【广东】夏雪晴《厨房初体验——凉拌海带丝》指导老师:林燕玲

    厨房初体验--凉拌海带丝 东华小学东城校区二年级 夏雪晴 一个风和日丽的早上,我开开心心地和外婆.妈妈一起去菜市场买菜,因为我今天要亲自尝试制作一道我最喜欢吃的美味菜肴--凉拌海带丝. 在制作之前,外 ...

  • 3千元贵在了哪?——贝纳利Tornado302赛道初体验

    前两天贝纳利正式发布了新款的飓风302,并以Tornado302的全新命名正式回归品牌,当然售价也回到了起初的29800元,在这个国产品牌降价的大潮,就有人质疑贝纳利是不是飘了? 品牌回归 29800 ...

  • 草堂小学之开学初体验

    成都学区房已获授权 本文是模仿另一篇热门文章<五朵金花小学的入读初体验-成师附小>,强行蹭热度. 开学已经2个多月了,草堂小学给我的总体感觉是那么好,放弃成外本部名额不亏. (请参考挨骂之 ...

  • 五朵金花之入读初体验——成师附小

    成都学区房已获授权 溜爸前言 这位家长是:跨城市搬到成都来读书的那种,之前还在东部一个沿海城市居住,现在已然来到成都,开始小学生活. 关于为什么要来成都,可查看这篇:上学是一件举家搬迁的事情,总要折腾 ...

  • Alibaba EasyExcel初体验

    简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel.相对于Apache POI来说,EasyExcel是从磁盘上一行行 ...

  • 开塞露の初体验o(╥﹏╥)o

    姐不在江湖,但江湖却有姐的传说...... 我身体有一个鸡肋的生理本能,去到一个新的地方,开始的几天都很难排便. 刚上高中那阵子,要再学校住宿,周末才能回家. 这就让我那个神奇的生理特质兴奋过了头. ...

  • 雪落无声伴课来——网络教学初体验

    清晨,拉开窗帘,见天灰蒙蒙的,像笼着一层薄烟. 细细地观看,哦!是下雪了! 这雪,轻,柔,细,像柳絮一般,从空中缓缓地飘落下来,袅袅婷婷,轻柔曼妙. 低头,俯瞰楼下的路,路面已经被罩上了一层薄薄的雪, ...

  • 试驾初体验 女司机全方位感受范爷同款科雷嘉

    点击上方 e汽车 关注我们 文 | 饭冰冰 微信号 | eautocar 写在前面的话 这里没有高大上的试驾图,也没有专业的测评词汇,有的只是一个女司机的真实试驾初体验-- 试驾车辆:东风雷诺科雷嘉 ...