SonarQube-将现有的Checkstyle xml文件导入SonarQube失败

Sti*_*jan 3 xml import rules checkstyle sonarqube

我已经安装了SonarQube 5.1.2和Checkstyle插件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>
Run Code Online (Sandbox Code Playgroud)

我已经尝试导出现有的预安装规则集,并尝试将其重新导入其他名称。但这会导致同样的失败。

这也是一个错误吗?

G. *_*eam 5

您说的是导入配置文件,但显示的似乎是特定于工具的XML文件,而不是与SonarQube质量配置文件有关的文件。

您可以导出和导入两种类型的内容:

  1. SonarQube质量配置文件-可以将这些配置文件导入SonarQube服务器以创建在文件中命名的配置文件。如果已经存在该名称的配置文件,则确实会出现错误。
  2. 特定于工具的规则集-对于某些语言,可以从配置文件中导出这些规则集,并在创建新的配置文件时将其导入

两种类型的导入功能都不能用于更新现有配置文件。

在创建Java概要文件时,曾经存在过用于导入Checkstyle,PMD和FindBugs规则集的功能,但是由于SonarQube Java插件已替换了每个插件中的大多数规则,因此该功能已被删除。