Gradle构建Apache OFBiz时Checkstyle无法解析配置流报错解决
问题根因
报错是checkstyle.xml的XML标签嵌套不匹配导致的,和缩进无关。你漏写了LineLength模块的闭合标签,之前盲目在文件末尾追加</module>只会打乱标签层级,根本解决不了问题。
逐行核对开标签就能发现问题:文件第二行打开了<module name="LineLength">标签,仅配置了max长度属性,没有写对应的闭合标签,就直接开始定义下一个BeforeExecutionExclusionFileFilter模块,整个XML结构从第二行开始就处于未闭合的错误状态,解析到文件末尾时检测到未匹配的开标签,就抛出了对应的SAX解析异常。
修复操作
- 定位到文件开头的
LineLength配置段,在<property name="max" value="150"/>行后补上</module>,闭合LineLength模块 - 删除你之前在文件末尾额外添加的多余
</module>标签,保证所有开标签和闭标签数量、层级完全对应 - 修正后文件开头的正确片段如下,其余原有配置不需要改动:
<module name="Checker"> <module name="LineLength"> <property name="max" value="150"/> </module> <module name="BeforeExecutionExclusionFileFilter"> <property name="fileNamePattern" value="module\-info\.java$"/> </module> <property name="fileExtensions" value="java, properties, xml"/> <!-- General file conventions --> <!-- 后续原有配置保持不变即可 -->
- 修复后标签对应关系:
- 根模块
Checker的开标签,对应文件最末尾的</module>闭合 LineLength的开标签,对应你刚补上的</module>闭合- 其余包括
TreeWalker在内的所有模块,原有闭合标签都是正确的,不需要调整
- 根模块
验证
修改完成后重新执行Gradle构建,Checkstyle配置解析失败的错误会直接消失。如果后续构建还有Checkstyle相关报错,属于代码风格不符合规则的业务类报错,和配置文件解析错误无关,按提示调整对应代码即可。
内容的提问来源于stack exchange,提问作者fawn
相关产品推荐
相关产品推荐

