2016-09-14 63 views
1

我試圖發展聲納插件。但我不能用params來得到規則。 這裏我的自定義規則。如何獲取規則和他們的價值sonarqube插件api

<?xml version="1.0" encoding="UTF-8"?> 
<rules> 
    <rule> 
     <key>custom-rule-key</key> 
     <name>custom rule</name> 
     <configKey>custom-rule-key</configKey> 
     <description>this is custom rule</description> 
     <priority>MINOR</priority> 
     <param> 
      <key>the-param-key</key> 
      <tag>style</tag> 
      <tag>security</tag> 
      <description> 
      <![CDATA[the param-description]]> 
      </description> 
      <defaultValue>42</defaultValue> 
     </param> 
    </rule> 
</rules> 

我可以在sonarqube界面上看到它,我可以從接口更改參數值。但正如我所提到的,我無法達到代碼的規則和參數值。你有什麼主意嗎? 謝謝。

+0

您使用的是哪個版本的SonarQube?你在使用哪種API? –

+0

SonarQube 5.4和依賴 \t \t \t org.sonarsource.sonarqube \t \t \t 聲納插件-API \t \t \t 5.4 \t \t \t 提供 \t \t onua

回答

1

我想你需要從掃描儀(「傳感器」擴展點)加載規則配置。在這種情況下,組件org.sonar.api.batch.rule.ActiveRules必須使用並注入您的傳感器。

+0

我org.sonar.api.profiles.RulesProfile(rulesProfile \t \t \t \t .getActiveRulesByRepository(」「);)得到它像你說的。但現在我需要質量配置文件。我可以通過參數獲得有效的規則,但是我認爲只有規則會記錄到默認質量配置文件即將到來。如何通過q​​uaility配置文件獲取活動規則? – onua

+0

我沒有提到類RulesProfile,但ActiveRules。這是獲得與當前項目相關的質量配置文件的有效規則的方法。 –

+0

當我在sonar-project.properties文件中設置sonar.profile時,我可以通過此配置文件獲得活動規則。 Rulesprofile注入傳感器。 rulesProfile .getActiveRulesByRepository(「」);正在爲我工​​作。謝謝。 – onua