美文网首页Java 杂谈
Gradle系列(一)-Gradle介绍

Gradle系列(一)-Gradle介绍

作者: BigfaceMonster | 来源:发表于2019-04-14 15:56 被阅读0次
WX20190413-150809@2x.png

前言:最近在学习Netty,其中看到不少牛牛们的项目工程都是使用gradle构建的,作为一个上(好)进(奇)的程序员,打开了Gradle的官网,了解了一番,这里做个记录。

Gradle官网(学习Gradle的不二之选)

https://gradle.org/

Gradle简介

Gradle是一个旨在提高开发者效率的构建工具。不管是移动APP还是微服务,不管是小的初创项目或者大型企业级项目,Gradle都可以帮我们更好更快的自动化的构建实现我们的软件项目。

引自wikipedia:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy(新版还可基于kotlin)的特定领域语言来声明项目设置,而不是传统的XML。

Gradle对比Maven

Gradle VS Maven

灵活性

Gradle和Maven虽都提供了约定由于配置的机制,但是Maven提供的是一个非常严格,对用户定制不太友好甚至有时无法定制的系统,这也侧面展示了Maven的能力范围,只要你没有一些定制化的特殊需求,Maven基本可以满足大多数需要自动化构建的场景,在这一点上,Gradle就给予了用户更大的灵活度,同时还降低了复杂度。

性能

WX20190413-154338@2x.png

Maven和Gradle都使用了并行构建,并行依赖解析的方式。Gradle区别于Maven最大的地方在于其work avoidance and incrementality机制。最大的3个让Gradle构建更快的原因是:

  1. Incrementality:Gradle不会对Task的所有输入进行追踪构建,只会尽量处理被改变了的文件。
  2. Build Cache:充分重用构建以前的构建结果,即便是其他Gradle版本或其他机器上构建出的结果。
  3. Gradle Daemon:后台进程对构建信息进行持续追踪,keeps build information "hot" in memory。

更多性能对比见Gradle vs Maven: Performance Comparison

用户体验

Maven作为现在大多数项目默认使用的构建工具,得到了大多数IDE的支持。Gradle这方面还是快速的进步,比如现在Gradle还支持了基于Kotlin DSL进行构建逻辑的定义,使支持Kotlin的的IDE自然的友好支持了Kotlin。除了使用IDE,还有很多用户喜欢使用命令行进行构建,Gradle也提供了待自动提示的命令行工具gradle-completion

依赖管理

Ant与Maven对于Gradle,前者编写容易,但功能有限,需要人工操作的过程也多;后者依托于庞大的依赖仓库,因此有着强大的外部依赖管理,但添加本地依赖并不方便,且项目不能灵活修改。而Gradle能很好地结合Ant与Maven各自的优点,可以随意的编写任务并组合成项目,直接利用Maven仓库,并且能很好的支持传递依赖和内部依赖。

相关文章

网友评论

    本文标题:Gradle系列(一)-Gradle介绍

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