如何在sonarqube 4.3中创建规则库并使用一些核对表规则加载它?

时间:2014-06-13 11:50:13

标签: sonarqube

我正在为sonarqube版本4.3构建一个语言插件。目前,我无法为规则添加新的存储库。

在以前的版本中,有AnnotationRuleParserto解析规则。版本4.3是什么?

请告诉我如何在sonarqube版本4.3中创建新的存储库并添加规则。

谢谢!

2 个答案:

答案 0 :(得分:4)

您应该使用RulesDefinitions。如果在具有标准SonarQube格式的XML文件中声明规则(请参阅RulesDefinitionXmlLoader),则可以使用以下命令加载:

public class MyJsRulesDefinition implements RulesDefinition {

   private final RulesDefinitionXmlLoader xmlLoader;

   public MyJsRulesDefinition(RulesDefinitionXmlLoader xmlLoader) {
     this.xmlLoader = xmlLoader;
   }

   @Override
   public void define(Context context) {
     NewRepository repository = context.createRepository("my_js", "js").setName("My Javascript Analyzer");
     // see javadoc of RulesDefinitionXmlLoader for the format
     xmlLoader.load(repository, getClass().getResourceAsStream("/path/to/rules.xml"));
     repository.done();
   }
 }

答案 1 :(得分:0)

确实L.Langó提出的方法是可行的方法。我个人也在我正在开发的插件上使用它。只是为了澄清包含规则的.xml文件的强制性必需结构:

f("AB")==="CDE12345"