Sonarqube duplicated blocks of code must be remove

Sonarqube duplicated blocks of code must be remove(Source files should not have any duplicated blocks)

解决办法1: 在UI上面把 Copy-paste detection 去除

可以在Sonarqube Server -》 Administration -》 Analysis Scope -》 Duplications -》 Duplication Exclusions 添加不需要检测duplicated blocks of code 的代码,代码内容可以参考(https://stackoverflow.com/questions/11079186/disable-sonar-duplications-on-entity-dto-packages)

解决办法2:在pom.xml文件里面添加不需要检测duplicated blocks of code 的代码名称

  • 背景

很多时候,为了项目尽可能通过代码进行控制,往往不希望通过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

更多Sonarqube内容可以参考:http://ioejr.com/index.php/tag/sonarqube/