美文网首页
Gradle学习使用

Gradle学习使用

作者: 独爱爱66 | 来源:发表于2020-05-12 23:05 被阅读0次

Gradle是什么?

基于特定领域语言Groovy来进行项目管理的自动化构建工具

对比于Maven的区别?

Maven基于传统xml依赖管理,工作中的直观缺点是在项目规模越来越大的时候,pom依赖眼花缭乱,管理起来很费劲,而且之前的文章《maven构建依赖管理和依赖范围》中写到在工作中遇到jar包冲突,不好排查。Gradle因其的简洁灵活,功能强大,可以通过查看依赖报告直观的解决依赖冲突,能更好的适用复杂的构建环境。

Gradle安装很简单,步骤如下:

1、从官网下载压缩包:https://gradle.org/

2、配置环境变量

3、gradle -v, 验证环境变量配置是否成功

验证gradle安装成功

3、注意配置新建变量 GRADLE_USER_HOME

变量名:GRADLE_USER_HOME

变量值:自定义Gradle仓库目录或者Maven的仓库目录(如:D:\apache-maven-3.1.1\repository)

在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置

定义repositories 中 jar 包的获取顺序,优先使用本地maven仓库,在maven切换到gradle很方便。非常实用,重点!!!

配置gradle使用本地maven仓库

Groovy语言如何使用,具有哪些特性?

Gradle简洁灵活的特点主要是,基于Groovy这种动态语言才能够实现,所以想学会Gradle,核心的在于能够学会Groovy如何编写。Groovy编码同Java一样都是被编译成字节码文件运行在JVM虚拟机上,直接通过比较学习来了解Groovy几乎没有什么难度。

Groovy主要的特点如下:

Groovy完全兼容Java的语法,但是在使用时在Java的基础上又简化很多

1、分号是可选的,可以省略不写

2、类、方法默认是public,不像Java有好几个修饰符

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

4、属性可以直接用点号获取

5、最后一个表达式的值会被作为返回值,return可以不写

6、==在Java中比较的是内存地址,在Groovy中比较的是值,等同于equals()

高效的Groovy特性:

1、assert语句

2、动态语言,自动指定变量类型

3、字符串有三种表达方式单引号,双引号,三个单引号

4、Groovy中结合List、Map有更简单的写法

5、闭包,理解是把代码块作为参数传入方法中调用

代码展示以上特性:

groovy特性

自动化构建工具主要解决的是,依赖管理,自动化测试,项目部署,让这些重复性的工作,能使用构建工具简单舒服的依赖管理,这些功能maven,gradle都已经具备,只是对比maven,gradle实现的更加简洁灵活,非常好用。

gradle兼容maven,所以目录结构相同:

gradle项目目录结构

而在进行依赖管理的时候到底与maven有何不同?

1、引入依赖形式不同

maven通过groupId、artifactId、version唯确定jar包:

maven引依赖

gradle通过group、name、 version唯一确定jar包 :

gradle引依赖

2、解决版本冲突方式不同:

出现版本冲突的原因是依赖的传递性,可以理解为爸爸依赖爷爷,如果儿子依赖爸爸,那么确定儿子依赖爷爷。

maven:

只能进行手动排除

maven解决jar包冲突

gradle:

默认自动使用高版本,所以大部分时候并不需要开发人员自己去指定一个版本,有效的避免了开发中自己去哼哧哼哧j解决ar包冲突问题,下图显示jar包冲突时默认使用了高版本。

默认引入高版本

除了默认外可以直接排除传递性依赖

还可以修改默认的策略,来强制指定一个版本

有依赖报告可以查看,方便找问题,这三处截图省略。

3、gradle具备自定任务功能task

比如通过自定义构建web项目的目录结构,创建成功

自定义task

4、多项目构建

很多时候一个项目都只是按MVC来模块化,较少的模块一般是简单的项目,在复杂项目中有非常多的模块,如果maven进行管理通常都是通过继承parent模块来层层继承,xml的配置依赖jar包过多,梳理项目间的依赖关系会格外心累,而gradle真的是多项目构建的福音,在parent项目build.gradle文件中,使用allprojects{}可以对所有模块需要的配置进行指定,使用subprojects{}可以对所有子模块需要依赖的包进行指定,这样其他子项目就不需要进行依赖了,要改动版本只需要改一处就可以,涉及代码较多,本文不展开说明。

5、自动化测试

在自动化测试上,maven和gradlle没有太大差别,只要把测试代码写到指定的目录,那么构建工具就可以自动发现测试用例自动执行。gradle更优秀的是在build之后到reports目录下,对测试结果有index.html,使用页面形式对测试的结果进行可视化的展示。

html测试报告

6、项目部署

maven和gradle都可以将项目打包到本地和指定的远程仓库,目前我工作中使用的就是通过maven将项目打包的公司的svn上,而gradle是通过maven-publish插件操做,操作的也是maven的仓库,很明显使用gradle更便捷。

gradle部署配置

相关文章

  • gradle学习使用

    翻译自Android Plug-in for Gradle转载请注明出处gradle学习使用,如果有翻译错误还请斧...

  • Gradle学习使用

    Gradle是什么? 基于特定领域语言Groovy来进行项目管理的自动化构建工具 对比于Maven的区别? Mav...

  • Gradle Build Tool(二)Gradle文件结构

    学习Gradle其实就是学习如何使用Gradle构建我们所需要的项目。 创建一个构建 创建一个gradle构建很简...

  • Gradle基础

    学习gradle的原因 1.gradle是AndroidStudio使用的默认的构建工具2.gradle给与开发者...

  • Android Gradle使用详解(二)--添加依赖

    Android Gradle使用技巧-gradle使用详细介绍Android Gradle使用详解(一)--设置a...

  • 简单的学习Groovy

    基于该网站深入理解groovy学习,Android Studio使用gradle工具进行打包编译的,而gradle...

  • 与Gradle的那些年

    既然要学习Gradle,首先要知道它是什么,它又能干什么,以及怎么使用它。 Gradle是什么? Gradle能干...

  • [转载]使用gradle开发intellij idea plug

    引用:Gradle依赖项学习总结,dependencies、transitive、force、exclude的使用...

  • 最近需要做的事

    技术上 学习tinker(使用+ 源码 + 自定义task) Gradle transform api使用 Gra...

  • 我的Gradle使用实践(零)

    Gradle是一款非常强大的构建工具,最近学习了下Gradle的基础使用,这里记录下我的使用实践。 一. 安装Gr...

网友评论

      本文标题:Gradle学习使用

      本文链接:https://www.haomeiwen.com/subject/vtswnhtx.html