Eclipse Checkstyle插件执行内部错误:org.checkstyle.sun.suppressionxpathfilter.config属性未设置
问题产生原因
- Checkstyle 8.x版本内置的Sun代码规范模板默认引用了
org.checkstyle.sun.suppressionxpathfilter.config变量,该变量原本是官方Sun规范包内置的属性,用于指定XPath规则抑制文件的路径。 - Eclipse的Checkstyle插件从内置模板复制生成自定义配置时,不会自动同步这个内置属性到自定义配置中,大部分用户在全局属性窗口配置的属性没有绑定到对应自定义配置,或者属性值填写不符合要求,就会导致配置解析时报属性未设置的错误。
- 自定义配置中保留的
SuppressionXpathFilter模块依赖该属性,没有有效配置时就会触发解析失败。
修复方案
提供两种可选方案,按需选择即可:
方案一:移除无用模块(优先推荐,操作最简单)
大部分开发者不需要用到XPath规则抑制功能,直接删除对应模块即可解决问题:
- 打开Eclipse菜单路径
Window -> Preferences -> Checkstyle,找到你创建的自定义Checkstyle配置,点击「编辑」按钮 - 在配置编辑页的模块列表中,找到名称包含
SuppressionXpathFilter的模块,直接删除该模块 - 保存配置后,重新对项目执行Checkstyle代码检查即可,不会影响原有Sun规范的核心检查规则。
方案二:正确配置缺失属性(适合需要用到XPath抑制功能的场景)
如果需要保留XPath规则抑制功能,按以下步骤配置属性:
- 打开你自定义的Checkstyle配置的编辑页,切换到当前配置专属的「属性(Properties)」标签页,注意不要配置全局Checkstyle属性,必须绑定到当前自定义配置
- 新增一条属性:键为
org.checkstyle.sun.suppressionxpathfilter.config,值可以填你自定义的XPath抑制规则xml文件的绝对路径,如果没有自定义规则,直接填内置的Sun规范抑制文件路径/sun_checks_suppressions.xml即可 - 保存配置后重新执行代码检查即可。
内容的提问来源于stack exchange,提问作者paradoxed
相关产品推荐
相关产品推荐

