web-dev-qa-db-ja.com

sonarqube TypeScriptプラグイン:「言語をサポートするプラグインをインストールする必要があります」

このプラグインを使用してTypeScriptプロジェクトを分析するようにSonarQubeをセットアップしようとしています: 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プラグインがインストールされていることを[設定]-> [システム]-> [UpdateCenter]で確認できます。言語キーワードは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

このすべての設定を行っても、「言語をサポートするプラグインをインストールする必要があります」というソナーランナーエラーが表示されます。

何が欠けていますか?

編集:

JavaScriptプラグインをインストールしてみましたが、同じ問題が発生しています。したがって、これはTypeScriptに限定されません。 Javaプロジェクトに対してSonarを実行できますが、他の言語は機能していないようです。

12
laffoyb

さて、私はこの特定の問題を解決する方法を見つけました。キー sonar.language私のsonar-project.propertiestsではなく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 ...の場合、それは明らかではありません。この直感を確認する方法はありますか?

14
laffoyb

可能なsonar.language値は次のとおりです

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

必要なプラグインをインストールし、-Xスイッチを使用してスキャナーを実行すると、ソナーログで必要な値を見つけることができます。

5
Karthik