期望效果
通过mvn package进行打包的时候生成jar包启动脚本 直接对生成的jar包启动
引入maven插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<!--主要使用的是maven提供的assembly插件完成-->
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<!--具体的配置文件-->
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!--绑定到maven操作类型上-->
<phase>package</phase>
<!--运行一次-->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
在项目目录下创建如下文件
![d6932b3d6338bdde44bfb1c7da94b7c2.png](https://i-blog.csdnimg.cn/blog_migrate/5c83609171b333b4dd28213f58539161.jpeg)
具体的文件内容详见
https://gitee.com/pingfanrenbiji/resource/tree/master/assembly
通过maven打包
![622f9fc86856df826d870ea1b660e62e.png](https://i-blog.csdnimg.cn/blog_migrate/ee41337d76969b6caf18b3227a6ac202.png)
在target目录下 会生成一个 压缩包
![77a162a722813e70fdff9b909a2721ec.png](https://i-blog.csdnimg.cn/blog_migrate/4efb1d63b8254ec393e85ae8f282a0d5.jpeg)
![7c70aacda38ed6de96b2737588751283.png](https://i-blog.csdnimg.cn/blog_migrate/db0e785b62681170dab8783f83037a32.jpeg)
圈红部分是assembly启动脚本
lib目录下 是生成的jar包
config目录是项目中的配置文件resouces目录下所有的配置
启动脚本启动jar包
注:该启动脚本会读取config下面的application.yml配置文件
![42df9bb3f5b2f06137fc946febd34eb7.png](https://i-blog.csdnimg.cn/blog_migrate/bf954b142d444862516c872b762d050f.png)
需要优化的地方
该启动脚本只能读取 application.yml 配置文件
所以对于多环境配置的情况不能够使用
![14c958132fd56116ec7b1ebea288af08.png](https://i-blog.csdnimg.cn/blog_migrate/87272b37eb6a96c1c08ecb6391c1e7bd.jpeg)
这里优化的思路(等有时间了再完善)
- 从外部传给该启动脚本一个 profile 环境变量
- 通过环境变量找到对应的配置文件
- 然后把该配置文件复制成application.yml文件