SpringBoot配置多环境时项目启动报错org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)
方法一:
在pom.xml中增加如下配置:
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>**/application.yml</include>
<include>**/application-${profiles.active}.yml</include>
</includes>
</resource>
</resources>
如果还是报错不能识别'@',方法二:
如果没有写includes或者是<include>**/*.*</include>可以忽略
不是的话注意${},这里的内容要和properties里面<profiles.active> 这个标签名一样,而且${}里面的内容要和applicaiton.yml配置的spring.profiles.active的值@内容一致:
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
如果pom.xml写的是这种:<profilesActive>环境</profilesActive>
<profiles>
<profile>
<id>dev</id>
<properties>
<profilesActive>dev</profilesActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profilesActive>prod</profilesActive>
</properties>
</profile>
</profiles>
那在主配置文件中就得改成profilesActive,就是要对应。
如果还是报错不能识别'@'符合,在启动前重新拉一下项目依赖。