sonarqube typescript插件:"你必须安装一个支持该语言的插件"

laf*_*oyb 12 sonar-runner typescript sonarqube

我正在尝试使用此插件设置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.
Run Code Online (Sandbox Code Playgroud)

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

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

SonarQube正在运行并服务于端口9000,我可以在Settings-> System-> UpdateCenter上看到安装了TypeScript插件,并带有language关键字typescript.

基于这篇文章,似乎我必须:

登录您的Sonar实例,单击要使用的语言标题顶部的"设置">"质量配置文件"和"创建".

查看这些设置,我看到一个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
Run Code Online (Sandbox Code Playgroud)

有了所有这些配置,我仍然收到声纳 - 跑步者错误"你必须安装支持该语言的插件".

我错过了什么?

编辑:

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

laf*_*oyb 14

好的,我想出了如何解决这个具体问题.sonar.language我的关键sonar-project.properties应该是ts,而不是typescript.

# Language
sonar.language=ts
Run Code Online (Sandbox Code Playgroud)

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

我必须猜测,一般来说,语言键应该设置为源文件的正常文件扩展名?即Java - > .java,JavaScript - > .js,TypeScript - > .ts ......如果是这样,那就不明显了.有没有办法确认这种预感?


小智 5

这是可能的sonar.language值

 C# => "cs"
 CSS => "css"
 SCSS => "scss"
 Less => "less"
 Java => "java"
 Web => "web"
 XML => "xml"
 JSON => "json"
 JavaScript => "js"
Run Code Online (Sandbox Code Playgroud)

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