web-dev-qa-db-ja.com

いくつかのMavenプロジェクトをソナー分析から除外する方法

MavenベースのEclipseプラグインがたくさんあります(たとえば10(A、B、C ...))。

他のすべてのプラグインプロジェクトを含む1つのマスターpomファイルがあります。 sonar:sonarゴールを使用してマスターファイルをビルドすることにより、すべてのプラグインをビルドします。

だから私の質問:プラグインを除外できるようにする方法はありますか?

21
Sumit Singh

注:このプロパティはバージョン4.3から廃止され、今後使用しないでください。

ドキュメント から、sonar.skippedModulesを使用してモジュールをスキップするオプションがあります

また、Skiping Modulesセクションに記載されているソナー管理ページからこれを行うこともできます here

1
Raghuram

いくつかの方法があり、そのうちの1つは、スキップするプロジェクト/モジュールのsonar.skip内にpom.xmlプロパティを追加することです。

これにより、SonarQube分析からプロジェクトが除外されます。

<properties>
    <sonar.skip>true</sonar.skip>
</properties>

これはJenkinsでも機能し、ビルド後のアクションとしてSonarを実行します。

詳細については、以下を参照してください。 Maven用SonarQubeスキャナーを使用した分析

43
Cryn

公式に文書化されたsonar.skipには運がありませんでした:サブモジュールPOMで設定すると、

[INFO] Delaying SonarQube Scanner to the end of multi-module project

含まれるべきモジュールとその後

[INFO] sonar.skip = true: Skipping analysis

原子炉構築の終了時に、分析/アップロードはありませんでした。

代わりに、ルートPOMでsonar.exclusionsを、スキップするサブモジュールで使用されるソースファイル(パッケージパスによる)と一致する パターン に定義しました。これはうまくいったようです。


余談ですが、ルートPOMのsonar.projectKeyの設定は機能しませんでした。ソナーは不平を言った

Project '…' can't have 2 modules with the following key: …

これを.mvn/maven.configに移動して修正しました:

-Dsonar.projectKey=…
1
Jesse Glick