SonarQube - 帮助创建新的语言插件

时间:2013-07-30 16:27:10

标签: java plugins sonarqube

我正在为SonarQube创建一个新插件,允许开发人员对ESQL代码执行静态代码分析。

使用Maven我可以构建一个插件的shell,它会生成JAR文件,我可以将其放在正确的文件夹中,以便将其添加到SonarQube。

下一步是为规则编写Java类,但我不确定它们的内容和位置。我正在使用以下GIT存储库中的示例:https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

我只是创建一个包含某些类的新包吗?我如何实际规则?

1 个答案:

答案 0 :(得分:3)

如果要为ESQL语言编写规则引擎,这意味着您必须首先为此语言编写解析器。只有在完成此阶段后,您才会创建一个基于该解析器的规则引擎(具有导航AST并在特定情况下创建问题的访问者类)。

您可以查看我们如何实施Javascript插件(see the code of version 1.3):

  • “javascript-squid”模块是编写解析器的地方
  • “javascript-checks”模块是编写规则引擎(基于解析器)的地方
  • “sonar-javascript-plugin”模块是实际的插件,它嵌入了解析器和规则引擎,并提供了所有必需的粘合剂。