总所周知,基于Maven 的Spring boot的 app的部署一般是通过 spring boot maven plugin 将所有的依赖打成一个可执行jar包。
这个虽然能简化部署,但是相关的配置文件等全部打进一个jar里面就使得每次需要修改配置文件调整app的时候,就需要重新发布一次。
这个比较麻烦,而且时间成本较高。如果有CI工具,如:jenkins可以自动化的话,好一些,否则更加费时费力。
针对这个情况,我们一般是用 maven-assembly-plugin 将工程打成一个tar包,然后通过jenkins将这个包scp到服务器上,然后解压部署。
部署要求:
1, app启动sh与停止的文件部署:
src/main/bin/ 的文件结构:
包含 start.sh , stop.sh 文件,env/ 文件夹
env/文件夹包含四个环境的环境设置文件:pro/env.sh, stg/env.sh, dev/env.sh, local/env.sh
具体部署的时候根据maven的app.env参数将相应的env.sh文件复制到 {deploy-path}/bin/ 目录下。
src/main/bin/* → {deploy-path}/bin/
src/main/bin/env/${app.env}/env.sh → {deploy-path}/bin/
2,app运行配置文件的的部署