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

时间:2015-05-14 12:35:16

标签: typescript sonarqube sonar-runner

我尝试使用此插件设置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,我可以在Settings-> System-> UpdateCenter上看到安装了TypeScript插件,语言关键字为typescript

基于this post,似乎我必须:

  

登录您的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

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

我错过了什么?

编辑:

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

2 个答案:

答案 0 :(得分:13)

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

# Language
sonar.language=ts

我通过查看与javascript插件相对应的示例项目来解决这个问题: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 ......如果是这样的话,这一点并不明显。有没有办法确认这种预感?

答案 1 :(得分:4)

以下是可能的sonar.language值

import javax.ws.rs.core.GenericEntity;

...

public class NoteService {
NoteDataAccess theNoteDataAccess = new NoteDataAccess();

@GET 
@Path("/notes") 
@Produces(MediaType.APPLICATION_XML) 
public Response getNotes(){
    List<Note> notes = theNoteDataAccess.getAllNotes();
    GenericEntity<List<Note>> entity = new GenericEntity<List<Note>>(Lists.newArrayList(notes)) {};
    return Response.ok().entity(entity).build();
}

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