Spring Boot 把 Maven 干掉了,正式拥抱 Gradle!

2020 年 7 月 12 日 CSDN

作者 | 栈长
来源 | Java技术栈

在国外某社交网站上有一个关于迁移 Spring Boot 迁移 Maven 至 Gradle 的帖子:

帖子上也有很多人质疑:Maven 用的好好的,为什么要迁移至 Gradle?

虽然该贴子只是说 Gradle 牛逼,但并没有说迁移至 Gradle 所带来的影响和价值。

所以,Spring Boot 官方对此也发了博文作了解释:

https://spring.io/blog/2020/06/08/migrating-spring-boot-s-build-to-gradle

栈长简单概括一下。

没错,Spring Boot 做了一个重大调整:

在 Spring Boot 2.3.0.M1 中,将首次使用 Gradle 代替 Maven 来构建 Spring Boot 项目。


为什么要迁移?


Spring Boot 团队给出的主要原因是,迁移至 Gradle 可以减少构建项目所花费的时间。

因为使用 Maven 构建,回归测试时间太长了,等待项目构建大大增加了修复 bug 和实现新特性的时间。

而 Gradle 的宗旨是减少构建工作量,它可以根据需要构建任何有变化的地方或者并行构建。

当然,Spring Boot 团队也花了很多时间来尝试用 Maven 进行 并行构建,但因为构建 Spring Boot 项目的复杂性,最终失败了。

另外,Spring Boot 团队也看到了在其他 Spring 项目中使用 Gradle 以及并行构建所带来的提升,并且还可以使用 Gradle 在一些第三方项目上的构建缓存,这些优势都促使 Gradle 带到构建 Spring Boot 项目中来。


迁移有什么好处?


栈长使用 Maven,哪怕只改一个代码也是构建全部,构建项目确实要花不少时间。

Spring Boot 官方也给出了数据,一次完整的 Maven 项目构建一般需要一个小时或者以上,而在过去的 4 周时间内,使用 Gradle 构建的平均时间只用了 9 分 22 秒!!!

如下面截图所示:

光从构建时间来看,效率真是倍数级的。

https://github.com/spring-projects/spring-boot/tree/v2.3.0.RELEASE

特意去看了下,在 Spring Boot 2.2.8 中使用的是 Maven:

而最新发布的 Spring Boot 2.3.1 已经是切换到 Gradle 了:


会带来什么影响?


也许会有小伙伴质疑,Spring Boot 迁移到了 Gradle,会不会对公司现有的 Maven 项目或者后续的版本升级造成影响?

如果你只是使用 Spring Boot 框架来搭建系统,那还是可以继续使用 Maven 来管理依赖的,Spring Boot 会继续在 Maven 中央仓库提交。

如下面所示:

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot</artifactId>    <version>2.3.1.RELEASE</version></dependency>

因为当版本确定之后,这个 Maven 构建只是一次性的,不会影响 Spring Boot 团队的日常迭代效率。

但是,如果我们需要在本地构建 Spring Boot 源码,或者你正在学习最新 Spring Boot 源码,就需要掌握 Gradle 构建了。

题外话,Gradle 肯定是未来的趋势,但也不一定非得迁移至 Gradle,只有适合自己的才是最好的,毕竟现在 Maven 和 Gradle 都是主流,但是 Maven 更占有市场,很多主流开源项目都是以 Maven 依赖来作为示例演示的。

学习、从不止步。

更多精彩推荐

2020,“拷问”AI创业与投资

☞开源巨头 SUSE 收购 Rancher Labs,云原生时代来临

B 站 Up 主自制秃头生成器,独秃头不如众秃头?

干货!仅有 100k 参数的高效显著性检测方法

看完这篇 HashMap ,和面试官扯皮就没问题了

密码学应用的四个进化阶段 | 博文精选

点分享
点点赞
点在看
登录查看更多
0

相关内容

【KDD2020-Google】动态图设计的图学习
专知会员服务
34+阅读 · 2020年7月28日
一图搞定ML!2020版机器学习技术路线图,35页ppt
专知会员服务
93+阅读 · 2020年7月28日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
【ICML2020】图神经网络基准,53页ppt,NUS-Xavier Bresson
专知会员服务
57+阅读 · 2020年7月18日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
搭建自己的searx搜索引擎
黑白之道
13+阅读 · 2019年5月31日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
日均5亿查询量,京东到家订单中心ES架构演进
51CTO博客
4+阅读 · 2019年1月16日
6 个吊炸天的黑科技工具,吊打所有同类软件
高效率工具搜罗
3+阅读 · 2018年11月13日
ELK + Filebeat 搭建日志系统
架构文摘
7+阅读 · 2017年12月14日
Arxiv
7+阅读 · 2019年10月6日
Arxiv
7+阅读 · 2018年11月6日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
23+阅读 · 2017年3月9日
VIP会员
相关资讯
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
搭建自己的searx搜索引擎
黑白之道
13+阅读 · 2019年5月31日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
日均5亿查询量,京东到家订单中心ES架构演进
51CTO博客
4+阅读 · 2019年1月16日
6 个吊炸天的黑科技工具,吊打所有同类软件
高效率工具搜罗
3+阅读 · 2018年11月13日
ELK + Filebeat 搭建日志系统
架构文摘
7+阅读 · 2017年12月14日
Top
微信扫码咨询专知VIP会员