springboot项目打jar包部署,项目配置文件application.yml默认在jar包内部,可通过命令行方式在启动时修改配置文件中的属性,例如:java -jar xxx.jar --server.port=8088
若有大量属性需要修改则十分麻烦,现将配置文件放在jar包外部,方便修改
放置的两种方式:
1. 在jar文件所在目录下放置配置文件
2.在jar文件所在目录下新建config目录,在config目录下放置配置文件
根据yml配置文件加载原理,所有配置文件都会加载,高优先级的配置会覆盖低优先级的内容,且属性互补
配置文件加载优先级:config目录下 > jar目录下 > jar包内classpath
属性互补:若jar包内配置文件有属性servlet.context-path=/demo,jar包外配置文件没有此属性,根据加载优先级,外部配置文件优先加载,内部配置文件稍后加载,但属性servlet.context-path=/demo依然有效
有时候我们不希望内部的yml再发挥作用,可排除内部的yml文件:
在pom文件的<build></build>中加入:
<resources>
<resource>
<directory>src\main\resources</directory>
<excludes>
<exclude>application.yml</exclude>
</excludes>
</resource>
</resources>
附上官方的加载顺序说明: