web-dev-qa-db-ja.com

pom.xml(Mavenマルチモジュールプロジェクト)の<sonar.exclusions>はローカルでは機能しますが、会社のサーバーでは機能しません

私はpom.xmlの<sonar.exclusions>を使用して、ユニットテストコードのカバレッジから特定のパッケージを除外しています。私はSonarをローカルでセットアップし、除外はレポートに反映されます。ただし、同じ除外は会社のサーバーでは適用されません。

私は<sonar.skippedModules>を使用しています。これは意図したとおりに機能し、必要なモジュールを両方の環境で完全にスキップします。

ローカルソナーバージョンはバージョン4.3.1です会社のソナーバージョンはバージョン4.1.2です

モジュールの1つに<sonar.skippedModules>を書き込んだ例:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.mainClass>.....</project.mainClass>
    <sonar.exclusions>
        /src/main/Java/../../../../../Package1/*,
        /src/main/Java/../../../../../Package2/*,
        /src/main/Java/../../../../../JavaClass1.Java
    </sonar.exclusions>
    <sonar.language>Java</sonar.language>
</properties>

<sonar.exclusions> がローカルでのみ尊重される理由を理解していただけませんか。会社のサーバーでソナーレポートを生成するジョブ(Jenkinsで設定)を構築するときは守られませんか?バージョンの違いは重要ですか?

パッケージ名を区切るためにコンマの後に改行文字がないことで違いはありますか?

18
user3920253

これを試してください、同じ問題があり、それは私のために働きました

/src/main/Java/」ではなく、「com/companyname/projectname/」で始めてください

個人的には「**com/companyname/projectname/../**」が好きです

18
Nirav Shah

誤解しているかもしれませんが、/パスの先頭にあるsonar.exclusions文字を削除して、プロジェクトのルートディレクトリを基準にして計算されるようにする必要があります。

1
Mithfindel