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/
如此,我们便成功的安装了gradle。
和Maven的使用一样,我们创建工程时需要选择gradle。这里创建一个demo工程,如图:
如图,gradle的工程目录结构和Maven的工程目录结构差别不是很大,其中build.gradle文件相当于Maven的pom.xml文件。也有group和version的配置。
settings.gradle文件则指定了工程的名称。
如图,我们进入到gradle的控制台,可以看到和Maven还是有些差别的。这里有一个jar, 如果我们将上一步的apply plugin : 'jar' 改为 apply plugin : 'war',那么这里会增加一个war的插件用于打包。
Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。
大多数时候,我们使用构建工具都是使用其中的依赖管理功能 就像我们之前使用的Maven一样。几乎所有基于JVM的软件项目都需要依赖外部类库来重用现有的功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖带来的版本冲突。一个jar包属于一个工件,在gradle中,工件在仓库的坐标是group、name以及version。而工件存放在仓库里,在gradle中常用的仓库有mavenLocal、mavenCentral、jcenter,其中mavenCentra和jcenter是中央仓库,mavenLocal则是本地仓库 。
依赖阶段分为两个阶段,即编译阶段和运行阶段,而测试时也是分为这两个阶段。编译阶段所依赖的jar包,在运行阶段也会依赖。不同的阶段会有不同的标识 。
例如现在我需要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的目录下。