Sonar + Clover only runs on src-instrumentedという質問に基づいて、最初に mvn clean clover2:setup install clover2:clover を使用し、次に mvn sonar:sonar を使用することをお勧めします。
なぜ mvn clean clover2:setup install clover2:clover sonar:sonar を使用できないのだろうか?
Sonar + Clover only runs on src-instrumentedという質問に基づいて、最初に mvn clean clover2:setup install clover2:clover を使用し、次に mvn sonar:sonar を使用することをお勧めします。
なぜ mvn clean clover2:setup install clover2:clover sonar:sonar を使用できないのだろうか?
以前はゴールを一人で走るのが推奨されていましたsonar:sonar
。SonarQube Scanner for Maven は単体テストの実行を停止し、新しい Maven ライフサイクルをフォークしてカバレッジを収集するため、これはもう当てはまりません。
一般的なアドバイスは、1 つのコマンドでゴールを実行することです。例えばmvn clean package sonar:sonar
Clover の場合、clover:setup
目標は Maven モデルを変更して、他のすべてのプラグイン (surefire など) が元のソース コードではなくインストルメント化されたクラスを使用するようにすることです。これは、SonarQube がクラス ファイルと一致するのを妨げるため、確かに問題です。したがって、あなたの場合は、2 つの別々の目標に固執するか、sonar.sources
元のソース コードを参照するように手動で構成する必要があります。
Maven ログを比較し、考えられる理由を見つけました。
「mvn clean clover2:setup install clover2:clover sonar:sonar」は、ソースディレクトリを見つけるのに問題があるようです。ログは、ソースディレクトリとして ${project}\target\clover\src-instrumented および ${project}\target\generated-sources\annotations を使用していることを示しています。
src/main/java を明示的に指定すると、この 1 つのコマンドでうまく機能します。唯一のトリッキーな点は、ゴールを個別に実行するために sonar.sources を指定する必要がないのに、プラグインがソース ディレクトリの適切なフォルダーを見つけることができる理由です。