结合之前我的博文SpringBoot+GitHub+Jenkins、SpringBoot maven多环境打包应用、Linux/Mac配置管理ssh会话
可以实现这样的一个持续集成开发场景
- 开发者本地进行使用dev配置进行开发,在提交代码到远程仓库之前,将dev改为SpringBoot maven多环境打包应用中提到的
spring.profiles.active=@spring.profiles.active@
- 配置Jenkins,maven打包命令为
mvn clean package -DskipTests -P test
,配置shell脚本 - 配置GitHub或Gitlab远程仓库在有提交的情况下推送push事件至Jenkins
- 当代码提交至远程仓库后,远程仓库会向Jenkins推送push事件,Jenkins根据2步骤maven打包命令进行打包,然后Jenkins执行shell脚本将打包好的jar包推送至应用服务器上并运行服务
上面说的这些内容基本在前面的blog中有所体现。下面主要说明4步骤中使用的shell脚本,其主要完成的工作是以ubuntu用户复制jar包至应用服务器,ssh远程登录至应用服务器,关闭docker,执行docker build