当前位置: 首页 > 科技观察

Gradlevs.Maven,胜负已分?

时间:2023-03-14 23:03:09 科技观察

“我不明白为什么人们害怕新思想。我害怕旧思想。”——约翰凯奇“我不明白为什么人们害怕新思想。我害怕旧思想。”-约翰凯奇奇怪。勇敢地走出舒适区,去冒险吧!Gradle逐渐流行起来,但大多数人仍在使用Maven。本文将对Gradle和Maven进行全面的对比,大家可以作为选择对比的依据。Maven和Gradle都是“构建工具”,用来自动化工作,把我们的源代码编译成我们要发布的组件。历史Maven最初的版本诞生于2004年,Gradle诞生于2008年,Maven的诞生??时间更早,但两者都有着悠久的历史,都拥有优秀成熟的生态。2004年maven初版诞生Gradle初版2008年诞生这也是Spring和SpringBoot源码使用Gradle替代Maven的主要原因。Gradle构建缓存在本地重用Gradle任务的输出并在机器之间共享任务输出。在许多情况下,这将加快平均构建时间。在分支之间切换时,构建缓存也非常有用,因为先前构建的输出会保留下来,而不必重新创建。性能节省与上面的缓存构建相当,Gradle在测试项目中比Maven快17到100倍。在小型多项目构建中,干净构建的Gradle速度提高了2-3倍,增量更改的速度提高了7倍,缓存的Gradle任务输出速度提高了14倍。Gradle和maven速度比较在中型多项目构建中,Gradle在干净构建时快4-5倍,在增量更改时快40倍,在缓存Gradle任务输出时快13倍。在大型单体项目中,Gradle使用干净构建的速度提高了2-3倍,使用增量更改的速度提高了7倍,使用缓存的Gradle任务输出速度提高了3倍。CodeMaven使用基于xml的pom.xml,Gradle使用基于Groovy语言的build.gradle。我们来比较两个功能相同的SpringBoot程序,分别使用Maven和Gradle的区别。从图中可以看出build.gradle和pom.xml的代码行数对比。同样情况下,build.gradle是33行代码,pom.xml是69行代码。当然,这主要是因为xml本身就是一种非常冗长的表意语言。因此,使用xml作为配置的协议越来越少。从图中也可以看出Gradle比Maven的可读性更好,也更容易维护!特性MavenGradle构建编译Java应用程序有用的插件构建其他语言是否插件构建其他语言无性能并行编译是增量构建无增量编译是在后台作为守护进程运行否是可用性无需安装动态控制台无需自定义支持多-module是支持第三方插件是支持自定义插件是支持动态构建逻辑否从表中可以看出,Gradle的功能比Maven多。知名度从各种统计数据来看,Maven使用的知名度和市场占有率都具有绝对的领先优势。但这并不能说明太多问题。IE、XP系统和诺基亚手机也是市场的主导者。个别统计显示Gradle有领先的结果,但这并不代表Gradle真的领先。比如OpenLogic发布的《2022年度开源报告显示》:结语从上面的对比我们发现Gradle相比Maven有明显的优势。我提出以下建议:1.尝试使用Gradle来构建新项目!2.尝试将Maven的旧??项目迁移到使用Gradle构建。(例如:Spring/SpringBoot编译工具从Maven迁移到Gradle《官网翻译》)不愿意迁移的原因有很多:1.我对Maven很熟悉,没必要迁移到新的工具!2.我又要学一个新东西了,不能再滚动了!我觉得无论从事什么职业,都应该保持对新事物的敏锐感知和学习,不要停留在自己的舒适区。不管Gradle好不好,问题多不多,我们都要不断的去尝试。给大家的最后一句话:“我不明白为什么人们害怕新思想。我害怕旧思想。”——约翰凯奇“我不明白为什么人们害怕新想法。我害怕那些旧想法。”》——约翰·凯奇。勇敢地走出自己的舒适区,去冒险吧!文章来自:热爱科学的Wesley,如需转载本文,请于今日联系热爱科学的Wesley。