gradle和maven之间的比较
gradle和maven都可以用来构建java程序,甚至在某些情况下,两者还可以相互转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧。

gradle和maven的比较
虽然gradle和maven都可以作为java程序的构建工具。但是两者还是有很大的不同之处的。我们可以从下面几个方面来进行分析。
可扩展性
Google选择gradle作为android的构建工具不是没有理由的,其中一个超级重大的缘由就是由于gradle够灵活。一方面是由于gradle使用的是groovy或者kotlin语言作为脚本的编写语言,这样极大地提高了脚本的灵活性,但是其本质上的缘由是gradle的基础架构能够支持这种灵活性。

你可以使用gradle来构建native的C/C++程序,甚至扩展到任何语言的构建。
相对而言,maven的灵活性就差一些,并且自定义起来也比较麻烦,但是maven的项目比较容易看懂,并且上手简单。
所以如果你的项目没有太多自定义构建需求的话还是推荐使用maven,但是如果有自定义的构建需求,那么还是投入gradle的怀抱吧。
性能比较
虽然目前大家的机子性能都比较强劲,好像在做项目构建的时候性能的优势并不是那么的迫切,但是对于大型项目来说,一次构建可能会需要很长的时间,尤其对于自动化构建和CI的环境来说,当然希望这个构建是越快越好。

Gradle和Maven都支持并行的项目构建和依赖解析。但是gradle的三个特点让gradle可以跑得比maven快上一点:
增量构建
gradle为了提升构建的效率,提出了增量构建的概念,为了实现增量构建,gradle将每一个task都分成了三部分,分别是input输入,任务本身和output输出。下图是一个典型的java编译的task。

以上图为例,input就是目标jdk的版本,源代码等,output就是编译出来的class文件。
增量构建的原理就是监控input的变化,只有input发送变化了,才重新执行task任务,否则gradle认为可以重用之前的执行结果。所以在编写gradle的task的时候,需要指定task的输入和输出。TG:li9047
Gradle慎用,都是坑
只能说gradle构建快5倍
可能是你把坑趟完了,刚用时各种卡,慢,新旧版本不兼容,一般时间跟gradle斗智斗勇,其实就是为了下载个jar包而已,本来我一个ctrls就变异完了,gradle能编译上几分钟
你用的是eclipse吧?用idea编译不如eclipse但是整体还是idea完胜
gradle 很好啊,只不过现在公司的项目没用,所以已经三年没有碰这个构建工具了
主要还是看个人习惯跟公司的规定吧
我个人来说还是比较推荐用gradle的,maven太笨重了
我比较期望maven被淘汰
机器好网速快 那就不要用gradle 学习成本比较高,网上资料基本是maven的
其实更研发者友好,mvn慢,感觉是上古技术