如何修复Apache OFBiz构建中CheckStyle XML格式不合法错误?
解决Apache OFBiz Gradle构建中CheckStyle Main任务失败问题
错误提示的「根元素后的标记格式必须正确」,本质是你的CheckStyle XML配置文件结构不合法,核心问题有两个:
- 根模块
<module name="Checker">提前闭合,导致后续模块都成了根元素的兄弟节点,违反XML单根元素规则 <module name="TreeWalker">过早闭合,本该属于它的子模块(导入检查、空格检查等)都跑到了外部
下面是修正后的完整合法配置:
<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 --> <module name="NewlineAtEndOfFile"> <property name="lineSeparator" value="lf_cr_crlf"/> </module> <module name="FileTabCharacter"/> <module name="RegexpSingleline"> <property name="format" value="\s+$"/> <property name="minimum" value="0"/> <property name="maximum" value="0"/> <property name="message" value="Line has trailing spaces."/> </module> <module name="TreeWalker"> <!-- Naming conventions --> <module name="ConstantName"/> <module name="LocalFinalVariableName"/> <module name="LocalVariableName"/> <module name="MemberName"/> <module name="MethodName"/> <module name="PackageName"/> <module name="ParameterName"/> <module name="StaticVariableName"/> <module name="TypeName"/> <!-- Checks for imports --> <module name="AvoidStarImport"> <property name="excludes" value="java.io,java.net,java.lang.Math"/> </module> <module name="IllegalImport"/> <module name="RedundantImport"/> <module name="UnusedImports"> <property name="processJavadoc" value="false"/> </module> <!-- Checks for Size Violations --> <module name="MethodLength"/> <module name="ParameterNumber"/> <!-- Checks for whitespace --> <module name="EmptyForIteratorPad"/> <module name="GenericWhitespace"/> <module name="MethodParamPad"/> <module name="NoWhitespaceAfter"/> <module name="NoWhitespaceBefore"/> <module name="OperatorWrap"/> <module name="SeparatorWrap"> <property name="tokens" value="COMMA,LPAREN,RPAREN,RBRACK,ARRAY_DECLARATOR"/> <property name="option" value="eol"/> </module> <module name="SeparatorWrap"> <property name="tokens" value="DOT,METHOD_REF,ELLIPSIS,AT"/> <property name="option" value="nl"/> </module> <module name="ParenPad"/> <module name="TypecastParenPad"/> <module name="WhitespaceAfter"/> <module name="WhitespaceAround"/> <module name="SingleSpaceSeparator"/> <!-- Modifier Checks --> <module name="ModifierOrder"/> <module name="RedundantModifier"/> <!-- Checks for blocks. You know, those {}'s --> <module name="AvoidNestedBlocks"/> <module name="EmptyBlock"/> <module name="LeftCurly"/> <module name="NeedBraces"/> <module name="RightCurly"/> <!-- Checks for common coding problems --> <module name="EmptyStatement"/> <module name="EqualsHashCode"/> <module name="IllegalInstantiation"/> <module name="InnerAssignment"/> <module name="MultipleVariableDeclarations"/> <module name="SimplifyBooleanExpression"/> <module name="SimplifyBooleanReturn"/> <!-- Checks for class design --> <module name="DesignForExtension"/> <module name="FinalClass"/> <module name="HideUtilityClassConstructor"/> <module name="InterfaceIsType"/> <module name="VisibilityModifier"/> <!-- Miscellaneous other checks --> <module name="ArrayTypeStyle"/> <module name="UpperEll"/> <module name="Indentation"> <property name="caseIndent" value="0"/> <property name="lineWrappingIndentation" value="8"/> </module> <!-- Checks for annotations --> <module name="MissingOverride"/> </module> </module>
操作步骤
- 把原配置文件的内容替换成上面的代码
- 重新运行Gradle构建命令:
./gradlew checkstyleMain
内容的提问来源于stack exchange,提问作者fawn
相关产品推荐
相关产品推荐

