其中环境不同而需替换的文件放在类似 resources_pro 的目录,这个目录也可以不存在,在打包时有重复的文件会自动替换掉前面 resources 目录。 这里的资源文件区别用了目录区分,跟 filter 对比如下
优点 | 缺点 | |
---|---|---|
directory | 可以实现非参数的差异 | 修改内容时需要修改多处 |
filter | 增加全部相同的内容时只需改一处 | ${}参数可能导致不能直接启动 |
<properties>
<maven.resources.overwrite>true</maven.resources.overwrite>
</properties>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${basedir}/src/main/resources_${envSuffix}</directory>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<envSuffix>dev</envSuffix>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<envSuffix>pro</envSuffix>
</properties>
</profile>
</profiles>