私は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で設定)を構築するときは守られませんか?バージョンの違いは重要ですか?
パッケージ名を区切るためにコンマの後に改行文字がないことで違いはありますか?
これを試してください、同じ問題があり、それは私のために働きました
「/src/main/Java/
」ではなく、「com/companyname/projectname/
」で始めてください
個人的には「**com/companyname/projectname/../**
」が好きです
誤解しているかもしれませんが、/
パスの先頭にあるsonar.exclusions
文字を削除して、プロジェクトのルートディレクトリを基準にして計算されるようにする必要があります。