maven多环境配置如下:
<profiles>
<!--这是开发环境-->
<profile>
<id>druid</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<activatedEnv>druid</activatedEnv>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--这是生产环境-->
<profile>
<id>prod</id>
<properties>
<activatedEnv>prod</activatedEnv>
</properties>
</profile>
</profiles>
application.yml使用如下:
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: @activatedEnv@
报错如下:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
in 'reader', line 19, column 13:
active: @activatedEnv@
注意:
方法一:我刷新maven之后还是无法启动项目,报同样的错误,证明该方法不适用我的项目
方法二:在pom文件中新增过滤(亲测有效)
<!--build节点增加以下内容-->
<resources>
<resource>
<directory>src/main/resources</directory>
<!--开启过滤,用指定的参数替换directory下的文件中的参数-->
<filtering>true</filtering>
</resource>
</resources>