解决org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@'

1、问题


运行springboot项目,遇到了如下的错误
org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' 。

这是因为我在pom.xml中配置了

<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<env>dev</env>
				<mysql.host>172.30.254.12</mysql.host>
				<mysql.port>3306</mysql.port>
				<mysql.user>root</mysql.user>
				<mysql.password>123456</mysql.password>
			</properties>
                        **<activation>**
**				<activeByDefault>true</activeByDefault>**
**			</activation>**
		</profile>
</profiles>

然后,我希望在application.yml中通过 %mysql.host% 得到 profile 里边配置的mysql.host属性。

但是,当项目启动之后,就报出了上面的错误。

2、解决办法


从网上搜了一下,确实有人曾经遇到了类似的问题,他文章中讲到 maven reimport 一下就可以解决。

可是,在我的案例中真实的情况不是这样的,真实的原因是 pom的profile中没有增加activation节点,如上面代码中的加粗部分所示。当我后来搞清楚了真实原因后,增加了activation节点,问题就得到了彻底的解决。





posted @ 2021-11-15 14:44  zhangzl419  阅读(4159)  评论(0编辑  收藏  举报