可以在Sonarqube Server -》 Administration -》 Analysis Scope -》 Duplications -》 Duplication Exclusions 添加不需要检测duplicated blocks of code 的代码,代码内容可以参考(https://stackoverflow.com/questions/11079186/disable-sonar-duplications-on-entity-dto-packages)
很多时候,为了项目尽可能通过代码进行控制,往往不希望通过Sonarqube的Server上面进行设置的方式对代码的Code Smell进行更改,所以可以通过pom.xml进行。
在上面解决办法1中可以通过UI添加代码名称,该选项显示 Duplication Exclusions
Patterns used to exclude some source files from the duplication detection mechanism. See below to know how to use wildcards to specify this property.
Key: sonar.cpd.exclusions 可以看到我们可以选择在pom.xml文件里面通过sonar.cpd.exclusions添加不需要检测duplicated blocks of code 的代码名称
maven环境下可以使用以下命令进行Sonar检查
mvn sonar:sonar -Dsonar.host.url=yourSonarqubeUrl -Dsonar.login=yourSonarQubeToken
可以通过运行的log看到是否设置成功:
[INFO] Sensor CPD Block Indexer
[INFO] Copy-paste detection exclusions:
**/Payload/*
[INFO] Sensor CPD Block Indexer (done) | time=75ms
[INFO] SCM provider for this project is: git