SBuild

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

不想你离开。 提交于 2020-10-14 00:38:50
在国外某社交网站上有一个关于迁移 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 Boot 2.3.0 放弃Maven最终拥抱Gradle

▼魔方 西西 提交于 2020-07-27 11:34:40
在 2.3.0 中对 Spring Boot 进行了相当重大的更改,这是使用 Gradle 而非 Maven 构建的项目的第一个版本。 Spring 的每个项目都独立的项目组在开发运营,在用户最常使用的白盒部分(例如 API 设计)保持一致性,对于用户不可见的黑盒部分,各个项目组选择自己适合工具没有统一的约定。 例如: 项目构建工具。Spring Framework 自 2012 年的 3.2.0 起就使用 Gradle 构建,而一年后开始使用 Spring Boot,此后不久又开始使用 Spring Cloud,两者都基于 Maven。 项目 构建工具 Spring Framework Gradle Spring Boot Maven Spring Cloud Maven 为什么要切换 Spring Boot 团队考虑由 Maven 切换到 Gradle 的主要原因 为了减少构建项目所需的时间 。在开发和测试过程中,等待构建完成所花费的时间增加了修复错误和实现新功能所花费的时间。 为了解决这个问题,团队曾尝试利用 Maven 对并行构建的支持。由于 Spring Boot 构建的复杂性,特别是对 Invoker 插件的使用,尝试失败。通过将构建分为四个部分来解决 CI 问题。首先构建项目的主要核心,然后并行构建三个独立的部分。但 CI 的构建仍需要一个小时或更长时间。此外

深入解析 Kubebuilder:让编写 CRD 变得更简单

♀尐吖头ヾ 提交于 2019-11-30 10:56:51
作者 | 刘洋(炎寻) 阿里云高级开发工程师 **导读:**自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubernetes 高级玩家的必备技能,本文将介绍 CRD 和 Controller 的概念,并对 CRD 编写框架 Kubebuilder 进行深入分析,让您真正理解并能快速开发 CRD。 概览 控制器模式与声明式 API <br />在正式介绍 Kubebuidler 之前,我们需要先了解下 K8s 底层实现大量使用的控制器模式,以及让用户大呼过瘾的声明式 API,这是介绍 CRDs 和 Kubebuidler 的基础。<br /> <a name="2"></a> 控制器模式 <br />K8s 作为一个“容器编排”平台,其核心的功能是编排,Pod 作为 K8s 调度的最小单位,具备很多属性和字段,K8s 的编排正是通过一个个控制器根据被控制对象的属性和字段来实现。<br /> <br />下面我们看一个例子:<br /> apiVersion: apps/v1 kind: Deployment metadata: name: test spec: selector: matchLabels: app: test replicas: 2 template: metadata: