疑惑: 公司项目,本地启动时取用默认路径的下的配置文件,而当maven打包时取用另一文件路径下的配置文件。
解决过程:首先查找公司项目代码中是否控制本地启动和服务器启动时使用的配置文件不同,但是发现并不是;最后考虑是否是maven打包加载时已经有选择的获取配置文件。
答案:
可通过在pom.xml中增加profile标签,设置要进行替换的配置文件,并激活activeByDefault
这样每次打包部署时,只需设置要激活哪个profile即可。
<profiles>
<profile>
<id>local</id>
<properties>
<package.resource>local</package.resource>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>step</id>
<properties>
<package.resource>step</package.resource>
</properties>
</profile>
</profiles>
只不过我司这里比较特殊,待替换的配置文件有多个,所以指定了加载文件夹,不同的文件夹下放置不同的配置文件。此处的
<directory>src/main/resources/filter/${package.resource}</directory>
指定 加载动态的目录${package.resource}
我们在激活相应的profile时,则激活了该文件目录下所有的配置文件,
举例package.resource的值为local
则maven打包时打包src/main/resources/filter/local下的所有配置文件;
举例package.resource的值为step
则maven打包时打包src/main/resources/filter/step下的所有配置文件。