MavenベースのEclipseプラグインがたくさんあります(たとえば10(A、B、C ...))。
他のすべてのプラグインプロジェクトを含む1つのマスターpomファイルがあります。 sonar:sonar
ゴールを使用してマスターファイルをビルドすることにより、すべてのプラグインをビルドします。
だから私の質問:プラグインを除外できるようにする方法はありますか?
いくつかの方法があり、そのうちの1つは、スキップするプロジェクト/モジュールのsonar.skip
内にpom.xml
プロパティを追加することです。
これにより、SonarQube分析からプロジェクトが除外されます。
<properties>
<sonar.skip>true</sonar.skip>
</properties>
これはJenkinsでも機能し、ビルド後のアクションとしてSonarを実行します。
詳細については、以下を参照してください。 Maven用SonarQubeスキャナーを使用した分析
公式に文書化された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=…