SpringBoot 或 SOFABoot 一键升级为模块
本文讲解了 SpringBoot 或 SOFABoot 一键升级为模块的操作和验证步骤,仅需加一个 ark 打包插件即可实现普通应用一键升级为模块应用,并且能做到同一套代码分支,既能像原来 SpringBoot 一样独立启动,也能作为模块与其它应用合并部署在一起启动。
前提条件
- SpringBoot 版本 >= 2.3.0(针对 SpringBoot 用户)
- SOFABoot >= 3.9.0 或 SOFABoot >= 4.0.0(针对 SOFABoot 用户)
接入步骤
步骤 1:修改 application.properties
步骤 2:添加模块需要的依赖和打包插件
特别注意: sofa ark 插件定义顺序必须在 springboot 打包插件前;
步骤 3:自动化瘦身模块
您可以使用 ark 打包插件的自动化瘦身能力,自动化瘦身模块应用里的 maven 依赖。这一步是必选的,否则构建出的模块 jar 包会非常大,而且启动会报错。 扩展阅读:如果模块不做依赖瘦身独立引入 SpringBoot 框架会怎样?
步骤 4:构建成模块 jar 包
执行 mvn clean package -DskipTest
, 可以在 target 目录下找到打包生成的 ark biz jar 包,也可以在 target/boot 目录下找到打包生成的普通的 springboot jar 包。
小贴士:模块中支持的完整中间件清单。
实验:验证模块既能独立启动,也能被合并部署
增加模块打包插件(sofa-ark-maven-plugin)进行打包后,只会新增 ark-biz.jar 构建产物,与原生 spring-boot-maven-plugin 打包的可执行Jar 互相不冲突、不影响。 当服务器部署时,期望独立启动,就使用原生 spring-boot-maven-plugin 构建出的可执行 Jar 作为构建产物;期望作为 ark 模块部署到基座中时,就使用 sofa-ark-maven-plugin 构建出的 xxx-ark-biz.jar 作为构建产物
验证能合并部署到基座上
- 启动上一步(验证能独立启动步骤)的基座
- 发起模块部署
返回如下信息表示模块安装成功
- 查看当前模块信息,除了基座 base 以外,还存在一个模块 dynamic-provider
- 卸载模块
返回如下,表示卸载成功
验证能独立启动
普通应用改造成模块之后,还是可以独立启动,可以验证一些基本的启动逻辑,只需要在启动配置里勾选自动添加 provided
scope 到 classPath 即可,后启动方式与普通应用方式一致。通过自动瘦身改造的模块,也可以在 target/boot
目录下直接通过 springboot jar 包启动,点击此处查看详情。