Duplication is the worst quality flow as it includes all the others. Indeed copy/pasting a block of code duplicates non respects of coding standards, potential bugs, etc.
To help you fight against duplication, Sonar embeds its own Copy Paste Detection engine (referred as Sonar CPD). It can detect duplication between blocks:
When a change is needed on a piece of code, check for duplications with Sonar. If there are duplications:
Add the Comments & Duplications widget to your dashboard:
From there, you can drill down to the Duplications tab in the resource viewer:
How to read the example above: There is duplication between three blocks of 12 lines. The first block in FindbugsVersion starts at line 43, the second block in CheckstyleVersion starts at line 40 and the third block in PmdVersion starts at line 40.
To display the source code, click on the file name.
To visualize the entire block of code, click on the Expand link.
Log in as an administrator, go to Configuration > Duplications and set the Cross project duplication detection property to true.
Run a new analysis on your project to detect duplications with other projects.
Note that cross project duplication detection is automatically disabled when analyzing a project with the 'sonar.branch' property set.
See the following blog post: Manage Duplicated Code with Sonar.