sonarqube 打字稿插件:"You must install a plugin that supports the language"

sonarqube typescript plugin: "You must install a plugin that supports the language"

我正在尝试设置 SonarQube 以使用此插件分析我的 TypeScript 项目:https://github.com/Pablissimo/SonarTsPlugin

但是,我遇到了如下错误:

> C:\sonarqube\sonar-runner-2.4\bin\sonar-runner.bat
...
INFO: 
------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 3.006s
Final Memory: 18M/613M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must install a plugin that supports the language 'typescript'
ERROR:
ERROR: To see the full stack trace of the errors, re-run SonarQube Runner with the -e switch.
ERROR: Re-run SonarQube Runner using the -X switch to enable full debug logging.

我的设置: - Windows 7 64 位 - JDK8 (1.8.0) 64 位 - SonarQube 5.1 64 位

我已经从源代码构建了插件,并将生成的 .jar 文件复制到我位于 C:\sonarqube\sonarqube-5.1\extensions\plugins\sonar-typescript-plugin-0.1-SNAPSHOT.jar 的 SonarQube 安装中。

SonarQube 运行正在为端口 9000 服务,我可以在设置->系统->更新中心看到安装了 TypeScript 插件,语言关键字 typescript.

基于this post,看来我必须:

Login to your Sonar instance, click on "Settings" > "Quality profiles" and "Create" on top of the heading for the language you want to use.

查看这些设置,我看到一个 Typescript Profiles 标题,定义了 TsLint 配置文件并设置为默认值。

最后,在我的项目根目录下,我有一个文件sonar-project.properties

# Required metadata
sonar.projectKey=my-ts-project
sonar.projectName=A TypeScript Project
sonar.projectVersion=1.0

# Comma-separated paths to directories with sources (required)
sonar.sources=src

# Language
sonar.language=typescript

# Encoding of the source files
sonar.sourceEncoding=UTF-8

所有这些配置就绪后,我仍然收到 sonar-runner 错误 "You must install a plugin that supports the language"。

我错过了什么?

编辑:

我尝试安装 JavaScript 插件,但遇到了同样的问题。所以这不仅限于 TypeScript。我可以 运行 Sonar 针对 Java 项目,但似乎没有其他语言可用。

好的,我想出了解决这个具体问题的方法。我的 sonar-project.properties 中的键 sonar.language 应该设置为 ts,而不是 typescript

# Language
sonar.language=ts

我通过查看对应于 java 脚本插件的示例项目解决了这个问题:https://github.com/SonarSource/sonar-examples/blob/master/projects/languages/javascript/javascript-sonar-runner/sonar-project.properties。在这里,语言设置为 js 而不是 javascript

我不得不猜测,一般来说,语言键应该设置为源文件的正常文件扩展名?即 Java -> .java, JavaScript -> .js, TypeScript -> .ts ... 如果是这样,那么这并不明显。有什么方法可以证实这个预感吗?

这是可能的 sonar.language 值

 C# => "cs"
 CSS => "css"
 SCSS => "scss"
 Less => "less"
 Java => "java"
 Web => "web"
 XML => "xml"
 JSON => "json"
 JavaScript => "js"

使用 -X 开关安装所需的插件和运行 扫描仪,您可以在声纳日志中找到必要的值。