このプラグインを使用して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を実行できますが、他の言語は機能していないようです。
さて、私はこの特定の問題を解決する方法を見つけました。キー 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 ...の場合、それは明らかではありません。この直感を確認する方法はありますか?
可能なsonar.language値は次のとおりです
C# => "cs"
CSS => "css"
SCSS => "scss"
Less => "less"
Java => "Java"
Web => "web"
XML => "xml"
JSON => "json"
JavaScript => "js"
必要なプラグインをインストールし、-Xスイッチを使用してスキャナーを実行すると、ソナーログで必要な値を見つけることができます。