Spring Boot 项目部署方案,打包 + Shell 脚本部署详解

本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利工作;

  • profiles指定不同环境的配置
  • maven-assembly-plugin打发布压缩包
  • 分享shenniu_publish.sh程序启动工具
  • linux上使用shenniu_publish.sh启动程序

profiles指定不同环境的配置

通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可以通过两种方式:

  • 通过application.yml中编码指定 profile.active=uat 方式指定
  • 通过mvn中profiles来区分不同环境对应的配置文件夹,人工可以手动在idea勾选生成不同环境的包(推荐)

这里我们要讲的是第二种,首先在mvn中配置如下内容:

1 
 2 
 3 node
 4 
 5 
 6 node
 7 ${scripts_packageName}
 8 ${scripts_bootMain}
 9 
10 
11 true
12 
13 
14 
15 node1
16 
17 node1
18 ${scripts_packageName}
19 ${scripts_bootMain}
20 
21 
22 
23 node2
24 
25 node2
26 ${scripts_packageName}
27 ${scripts_bootMain}
28 
29 
30 

节点粗解:

id:用来指定不同环境配置文件所在的目录,如下我这里:

Spring Boot 项目部署方案,打包 + Shell 脚本部署详解_第1张图片

properties:该节点中的节点是可作为参数传递给其他配置文件,如我这里的package-name节点值就可以在另外的assembly.xml或者shell脚本文件中通过${package-name}获取到,如下:

Spring Boot 项目部署方案,打包 + Shell 脚本部署详解_第2张图片

activeByDefault:指定默认环境配置文件夹

maven-assembly-plugin打发布压缩包

对于springboot程序打包,可以分为jar和war,这里是jar包;有场景是咋们配置文件或者第三方等依赖包不想放到工程jar中,并且把这些文件压缩成一个zip包,方便上传到linux;此时通过maven-assembly-plugin和maven-jar-plugin就可以做到,mvn的配置如:

1 
 2 org.apache.maven.plugins
 3 maven-jar-plugin
 4 2.6
 5 
 6 
 7 false
 8 
 9 true
10 lib/
11 ${scripts_bootMain}
12 
13 
14 
15 
16 **/*.yml
17 **/*.properties
18 **/*.xml
19 **/*.sh
20 
21 
22 
23 
24 make-a-jar
25 compile
26 
27 jar
28 
29 
30 
31 
32
33 
34 org.apache.maven.plugins
35 maven-assembly-plugin
36 2.4
37 
38 
39 
40 
41 ${project.basedir}/src/main/assembly/assembly.xml
42 
43 
44 
45 
46 make-assembly
47 package
48 
49 single
50 
51 
52 
53 

值得注意的地方如下几点:

  • mainClass节点:用来指定启动main函数入口类路径,如这里的:com.sm.EurekaServerApplication
  • excludes节点:排除主jar包中配置等一些列后缀文件,因为我

你可能感兴趣的:(SpringBoot,java,spring,开发语言)