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

Jam*_*ing 5 java plugins sonarqube

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

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

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

我只是创建一个包含一些类的新包吗?我怎么实际规则?

Fab*_*eam 3

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

你可以看一下我们是如何实现Javascript插件的(参见1.3版本的代码):

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