解决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节点,问题就得到了彻底的解决。
分类:
TroubleShoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通