You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在yamllint中排除application.yaml里的@符号语法检查?

解决yamllint检查Spring Boot application.yaml时的@占位符语法错误

问题原因

你遇到的报错是因为标准YAML语法中,标识符不能以@开头,但Spring Boot项目里的@project.name@属于Maven模板占位符,并非最终的YAML结构,yamllint默认语法规则会将其判定为无效token。

以下是两种可行的解决方法:


方法1:通过yamllint配置文件调整规则

在项目根目录创建或编辑.yamllint配置文件,针对包含占位符的文件调整检查规则:

方案1.1:直接排除目标文件的语法检查

如果不需要对application.yaml做语法校验(毕竟它是模板文件),可以配置全局排除或针对该文件禁用语法规则:

extends: default

# 全局排除特定文件(可选)
files:
  exclude:
    - ./src/main/resources/application.yaml

# 或者针对该文件单独覆盖规则(更精细)
overrides:
  - files: ./src/main/resources/application.yaml
    rules:
      yaml-syntax: disable  # 禁用语法检查,跳过token有效性验证

方案1.2:允许@作为字符串开头字符

如果想保留其他语法检查,仅允许@开头的字符串,可以调整quoted-strings规则:

extends: default

rules:
  quoted-strings:
    required: false  # 允许非引号包裹的字符串
    extra-allowed: ["@"]  # 把@加入允许的字符串起始字符列表

方法2:修改application.yaml文件,用引号包裹占位符

将包含占位符的字段值用引号括起来,让yamllint将其识别为合法字符串,同时不影响Maven的占位符替换:

spring:
  application:
    name: "@project.name@"

这种方法更符合标准YAML语法,且不会破坏Spring Boot的配置加载逻辑。

内容的提问来源于stack exchange,提问作者Dumbo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:15:44