2016-04-14 9 views
0

XMLファイルのコード品質レビューにsonarqubeを使用したいと考えています。sonarqubeによるXML解析の問題を報告してください

sonarqubeサーバーをセットアップし、xmlプラグインを追加してサンプルXMLファイルにソナーランナーを実行しました。

バージョン: sonarqube-5.4 XMLプラグインV 1.4.1

サンプルXMLファイルの結果にタブを追加する(アクティブ「タブのルール」で)警告でsonarqubeのウェブサイトで見ることができます。

ときI壊れたXMLファイル、

<!---</sonar-config>-->. 

結果ソナーランナーログのエラーメッセージで終了タグを削除することによって:

INFO:ファイルCをanayleすることができません:/は、オートメーションを構築/ソーナー・サンプル・マスター/ projects/l anguages/xml/xml-sonar-runner/src/sonar_backup.xml INFO:原因:org.xml.sax.SAXParseException; lineNumber:233; columnNumber:24; X MLドキュメント構造は、同じエンティティ内で開始し、終了する必要があります。 情報:センサーXmlSensor(完了)|時間:250ms INFO:Sensor XmlFileSensor INFO:解析対象のソースファイルが1つ エラー:xmlファイルを解析できません:C:\ Build automation \ sonar-examples-master \ proje cts \ languages \ xml \ xml-sonar- runner \ src \ sonar_backup.xml

この結果、追加されたタブと欠落している終了文は、ソナーWebインターフェイスでは報告されません。破損したxmlは通知されずにスキップされます。

誰でも私にこれをサポートできますか? ウェブインタフェースでソナーが報告している破損したXMLファイルが必要です。

これまでのところ、フォーラムでこの問題に関する情報を見つけることができませんでした。

<?xml version="1.0" encoding="UTF-8"?> 
<sonar-config> 
    <version><![CDATA[321]]></version> 
    <date><![CDATA[2012-08-08]]></date> 
    <metrics/> 
    <properties> 
    <property> 
     <key><![CDATA[java.vm.version]]></key> 
     <value><![CDATA[20.0-b12]]></value> 
    </property> 
    <property> 
     <key><![CDATA[wrapper.jvm.port.max]]></key> 
     <value><![CDATA[31999]]></value> 
    </property> 
    <property> 
     <key><![CDATA[java.vendor.url]]></key> 
     <value><![CDATA[http://java.sun.com/]]></value> 
    </property> 
    <property> 
     <key><![CDATA[JAVA_HOME]]></key> 
     <value><![CDATA[C:\Program Files\Java\jdk1.6.0_27]]></value> 
    </property> 
    </properties> 
    <profiles> 
    <profile> 
     <name><![CDATA[Sonar way]]></name> 
     <version><![CDATA[1]]></version> 
     <default-profile><![CDATA[true]]></default-profile> 
     <provided><![CDATA[true]]></provided> 
     <enabled><![CDATA[true]]></enabled> 
     <used><![CDATA[false]]></used> 
     <language><![CDATA[web]]></language> 
     <active-rules> 
     <active-rule> 
      <key><![CDATA[AvoidHtmlCommentCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[DynamicJspIncludeCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[CRITICAL]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[IllegalTagLibsCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[CRITICAL]]></level> 
      <params> 
      <param> 
       <key><![CDATA[tagLibs]]></key> 
       <value><![CDATA[http://java.sun.com/jstl/sql]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[InlineStyleCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[InternationalizationCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[attributes]]></key> 
       <value><![CDATA[outputLabel.value, outputText.value]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[JspScriptletCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[CRITICAL]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[LibraryDependencyCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[CRITICAL]]></level> 
      <params> 
      <param> 
       <key><![CDATA[libraries]]></key> 
       <value><![CDATA[java.sql,javax.sql]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[LongJavaScriptCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[CRITICAL]]></level> 
      <params> 
      <param> 
       <key><![CDATA[maxLines]]></key> 
       <value><![CDATA[5]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[MultiplePageDirectivesCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[WhiteSpaceAroundCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[FileLengthCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[maxLength]]></key> 
       <value><![CDATA[500]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[ComplexityCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[tags]]></key> 
       <value><![CDATA[catch, choose, if, forEach, forTokens,when]]></value> 
      </param> 
      <param> 
       <key><![CDATA[operators]]></key> 
       <value><![CDATA[&&, ||, and,or]]></value> 
      </param> 
      <param> 
       <key><![CDATA[max]]></key> 
       <value><![CDATA[12]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[DocTypeCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[dtd]]></key> 
       <value><![CDATA[http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[DoubleQuotesCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[IllegalAttributeCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MAJOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[attributes]]></key> 
       <value><![CDATA[CAPTION.align, IFRAME.align, IMG.align, INPUT.align, OBJECT.align, 
      LEGEND.align, TABLE.align, HR.align, 
      DIV.align, H1.align, H2.align, H3.align, H4.align, H5.align, H6.align, P.align, 
      alink, background, bgcolor, 
      IMG.border, OBJECT.border, clear, color, compact, face, hspace, TD.height, TH.height, 
      language, link, 
      noshade, nowrap, HR.size, FONT.size, start, text, LI.type, OL.type, UL.type, LI.value, 
      version, 
      HR.width, 
      PRE.width, TD.width, TH.width]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[IllegalElementCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MAJOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[elements]]></key> 
       <value><![CDATA[applet, basefont, center, dir, font, isindex, menu, s, strike, u]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[IllegalTabCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[MaxLineLengthCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[maxLength]]></key> 
       <value><![CDATA[120]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[RequiredAttributeCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MAJOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[attributes]]></key> 
       <value><![CDATA[img.alt,script.type]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[UnclosedTagCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MINOR]]></level> 
      <params> 
      <param> 
       <key><![CDATA[ignoreTags]]></key> 
       <value><![CDATA[verbatim]]></value> 
      </param> 
      </params> 
     </active-rule> 
     <active-rule> 
      <key><![CDATA[AvoidCommentedOutCodeCheck]]></key> 
      <plugin><![CDATA[Web]]></plugin> 
      <level><![CDATA[MAJOR]]></level> 
     </active-rule> 
     </active-rules> 
     <alerts/> 
    </profile> 
    </profiles> 
    <rules/> 
<!---</sonar-config>--> 

答えて

0

SonarQubeはParsing ErrorRSPEC-2260)のための一般的なルールを持っていますが、明らかにXMLプラグインは、それを実装していません:

おかげで、よろしく マーティンここ

はcorrpted XMLファイルのコピーです。

正直なところ、XMLファイルが壊れていると、SonarQube分析を続行しないでください。どうして ? XMLのParsing Errorルールが使用可能であっても、メトリックと関連する履歴が壊れてしまいます(XMLファイルにはxの問題があります。突然、解析できないため1つしか表示されないため、x)一度修正すると)。

Fail-fast:前もって、xmllintなどのXMLファイルを検証します(this questionを参照)。壊れたものがあれば、それ以上のポイントはありません。