0

こんにちは、RPG 用のカスタム ソナー プラグインがあり、実行しようとしているソナー プロジェクトがあります。これが私のプラグインクラスです:

@Properties({
@Property(key = "rpg", defaultValue = "rpg", name = "File suffixes",
    description = "Comma-separated list of suffixes for files to analyze. To not filter, leave the list empty.")
})

public class RPGPlugin extends SonarPlugin {
 ...

分析を実行するプロジェクトには、次の sonarproject.properties ファイルがあります。

#These are the required metadata for any sonar project
sonar.projectName= prj1
sonar.projectKey = prj1
sonar.projectVersion = 0.1
# The value of the property must be the key of the language.
sonar.language=rpg
#Path to source directory
sources = src

このアプローチは Sonar 3.2 までは正しく機能していましたが、その後は失敗しました。ソナーランナーを介して行われた分析は、次のエラーを示しています。

Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.api.utils.SonarException: 
You must install a plugin that supports the language 'rpg'

このエラーは、3.2 より上のすべてのバージョンで一貫しています。ただし、プロパティ ファイルの言語の値を Java に変更すると、プロジェクトは以前のように分析されます。

sonar.language=java

これが機能している間、プロパティ ファイルには間違ったプログラミング値があり、言語名が明示的に指定されているポスト ジョブ アクションを実行することさえあります。

public boolean shouldExecuteOnProject(Project project) {
    return "rpg".equalsIgnoreCase(project.getLanguageKey());

自分のプロジェクトで RPG プラグインの RPG プロジェクトを実行できるようにするために他に必要なことはありますか?

4

1 に答える 1

1

この問題は、RPG 言語用に定義されたルール リポジトリ (空のリポジトリであっても) がないため、Sonar はこの言語がサポートされていないと判断します。

より一般的には、新しい言語のサポートを追加する場合、Sonar 用に開発されたオープンソース言語プラグインを確認するのが最善の方法です。たとえば、Javascript プラグインを参照してください。

于 2013-04-29T13:43:25.903 に答える