SonarQube - 将现有的 checkstyle xml-文件导入 SonarQube 失败
SonarQube - Import existing checkstyle xml-file into SonarQube fails
我已经安装了 SonarQube 5.1.2 和 Checkstyle Plugin 2.3。
问题:如何导入 Checkstyle XML 配置文件?当我尝试将预安装的 FindBugs 或 Checkstyle 规则配置导出到 XML 文件时,导出工作正常。然后我尝试用其他名称导入相同的规则,但它不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<module name="JavadocMethod">
<property name="scope" value="public"/>
<property name="suppressLoadErrors" value="true"/>
</module>
<module name="JavadocType">
<property name="scope" value="public"/>
<property name="authorFormat" value="^.../[^,]+(,\s.../[^,]+)*$"/>
</module>
<module name="JavadocVariable">
<property name="scope" value="public"/>
</module>
<module name="JavadocStyle"/>
<module name="ConstantName"/>
<module name="LocalFinalVariableName">
<property name="format" value="^[a-z_][a-zA-Z0-9]*$"/>
</module>
<module name="LocalVariableName">
<property name="format" value="^[a-z_][a-zA-Z0-9]*$"/>
</module>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<module name="AvoidStarImport"/>
<module name="IllegalImport"/>
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<module name="MethodLength"/>
<module name="ParameterNumber"/>
<module name="LineLength">
<property name="max" value="180"/>
<property name="tabWidth" value="4"/>
</module>
<module name="EmptyForIteratorPad"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND,WILDCARD_TYPE"/>
</module>
<module name="ModifierOrder"/>
<module name="RedundantModifier">
<property name="tokens" value="VARIABLE_DEF,ANNOTATION_FIELD_DEF"/>
</module>
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>
<module name="AvoidInlineConditionals"/>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="MagicNumber">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="MissingSwitchDefault"/>
<module name="RedundantThrows">
<property name="suppressLoadErrors" value="true"/>
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="DesignForExtension">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="severity" value="ignore"/>
<property name="packageAllowed" value="true"/>
<property name="protectedAllowed" value="true"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="ArrayTypeStyle"/>
<module name="FinalParameters">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="TodoComment"/>
<module name="UpperEll"/>
<module name="GenericWhitespace"/>
<module name="MissingOverride"/>
</module>
<module name="JavadocPackage">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="NewlineAtEndOfFile"/>
<module name="Translation"/>
<module name="FileLength"/>
<module name="FileTabCharacter">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="RegexpSingleline">
<property name="severity" value="ignore"/>
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="^\s*@[A-Za-z]+(\([^\)]*\))?\s+[^\(].+$"/>
<property name="message" value="Do not use inline annotations"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="\([^)]*@[^\s]+\s\s+.*\)"/>
<property name="message" value="Use single space after inline annotation"/>
</module>
</module>
我已经尝试导出现有的预安装规则集并尝试用其他名称将其导入回来。但这会导致同样的失败。
这也是一个错误吗?
您说的是导入配置文件,但显示的似乎是特定于工具的 XML 文件,而不是与 SonarQube 质量配置文件相关的文件。
您可以导出和导入两种类型的内容:
- SonarQube 质量配置文件 - 这些可以导入到 SonarQube 服务器以创建文件中命名的配置文件。如果该名称的配置文件已经存在,您确实会收到错误消息。
- 特定于工具的规则集 - 对于某些语言,这些可以从配置文件中导出并在 创建新配置文件时导入
两种类型的导入功能都不能用于更新现有配置文件。
用于在创建 Java 配置文件时导入 Checkstyle、PMD 和 FindBugs 规则集的功能,但由于 SonarQube Java 插件已经替换了每个规则的大部分规则在这些插件中,该功能已被删除。
我已经安装了 SonarQube 5.1.2 和 Checkstyle Plugin 2.3。
问题:如何导入 Checkstyle XML 配置文件?当我尝试将预安装的 FindBugs 或 Checkstyle 规则配置导出到 XML 文件时,导出工作正常。然后我尝试用其他名称导入相同的规则,但它不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<module name="JavadocMethod">
<property name="scope" value="public"/>
<property name="suppressLoadErrors" value="true"/>
</module>
<module name="JavadocType">
<property name="scope" value="public"/>
<property name="authorFormat" value="^.../[^,]+(,\s.../[^,]+)*$"/>
</module>
<module name="JavadocVariable">
<property name="scope" value="public"/>
</module>
<module name="JavadocStyle"/>
<module name="ConstantName"/>
<module name="LocalFinalVariableName">
<property name="format" value="^[a-z_][a-zA-Z0-9]*$"/>
</module>
<module name="LocalVariableName">
<property name="format" value="^[a-z_][a-zA-Z0-9]*$"/>
</module>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<module name="AvoidStarImport"/>
<module name="IllegalImport"/>
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<module name="MethodLength"/>
<module name="ParameterNumber"/>
<module name="LineLength">
<property name="max" value="180"/>
<property name="tabWidth" value="4"/>
</module>
<module name="EmptyForIteratorPad"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND,WILDCARD_TYPE"/>
</module>
<module name="ModifierOrder"/>
<module name="RedundantModifier">
<property name="tokens" value="VARIABLE_DEF,ANNOTATION_FIELD_DEF"/>
</module>
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>
<module name="AvoidInlineConditionals"/>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="MagicNumber">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="MissingSwitchDefault"/>
<module name="RedundantThrows">
<property name="suppressLoadErrors" value="true"/>
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="DesignForExtension">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="severity" value="ignore"/>
<property name="packageAllowed" value="true"/>
<property name="protectedAllowed" value="true"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="ArrayTypeStyle"/>
<module name="FinalParameters">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="TodoComment"/>
<module name="UpperEll"/>
<module name="GenericWhitespace"/>
<module name="MissingOverride"/>
</module>
<module name="JavadocPackage">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="NewlineAtEndOfFile"/>
<module name="Translation"/>
<module name="FileLength"/>
<module name="FileTabCharacter">
<property name="severity" value="ignore"/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="RegexpSingleline">
<property name="severity" value="ignore"/>
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
<metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="^\s*@[A-Za-z]+(\([^\)]*\))?\s+[^\(].+$"/>
<property name="message" value="Do not use inline annotations"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="\([^)]*@[^\s]+\s\s+.*\)"/>
<property name="message" value="Use single space after inline annotation"/>
</module>
</module>
我已经尝试导出现有的预安装规则集并尝试用其他名称将其导入回来。但这会导致同样的失败。
这也是一个错误吗?
您说的是导入配置文件,但显示的似乎是特定于工具的 XML 文件,而不是与 SonarQube 质量配置文件相关的文件。
您可以导出和导入两种类型的内容:
- SonarQube 质量配置文件 - 这些可以导入到 SonarQube 服务器以创建文件中命名的配置文件。如果该名称的配置文件已经存在,您确实会收到错误消息。
- 特定于工具的规则集 - 对于某些语言,这些可以从配置文件中导出并在 创建新配置文件时导入
两种类型的导入功能都不能用于更新现有配置文件。
用于在创建 Java 配置文件时导入 Checkstyle、PMD 和 FindBugs 规则集的功能,但由于 SonarQube Java 插件已经替换了每个规则的大部分规则在这些插件中,该功能已被删除。