转载

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

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

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

作者 | 栈长

来源 | Java技术栈

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

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 把 Maven 干掉了,正式拥抱 Gradle!

为什么要迁移?

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

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

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

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

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

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

迁移有什么好处?

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

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

如下面截图所示:

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

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

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

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

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

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

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

Spring Boot 把 Maven 干掉了,正式拥抱 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 依赖来作为示例演示的。

学习、从不止步。

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

更多精彩推荐

更多精彩推荐

原文  http://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4MA==&mid=2650761284&idx=3&sn=22763cc5cdf94089fa06ba7218195c94
正文到此结束
Loading...