Solución:
Hay varias formas de lograrlo, dependiendo de la importancia que le dé a este problema de duplicación. SonarQube informa lo que encuentra, todo depende de usted decidir qué hacer con él.
- Si cree que esto es un problema, debe refactorizar su código: SonarQube no puede reportar duplicaciones cuando no las hay.
- Si cree que esta instancia en particular no es un problema, puede reducir la gravedad del problema o marcarlo como “no se solucionará”, con un comentario agradable para la persona que vendrá después de usted. Creo que usar
@SuppressWarnings
anotaciones para esto es un abuso, cuando hay funciones dedicadas en SonarQube - Si cree que SonarQube ni siquiera debería plantear problemas sobre el código duplicado, puede deshabilitar la regla (la opción nuclear) o configurar su análisis para ignorar la duplicación de sus paquetes POJO
Por ejemplo, puede agregar la siguiente propiedad a la configuración de su escáner:
sonar.cpd.exclusions=path/to/your/package/*.java
Poniendo esto en la sección de respuestas para adjuntar una captura de pantalla:
Si está lo suficientemente seguro de que esos dos bloques de código tienen roles diferentes, puede cambiar el nivel de gravedad informado a Minor
o Info
desde la consola web. Por ejemplo, vea la captura de pantalla a continuación:
A veces, Sonar informa como severo en cosas que no son realmente graves, pero nuevamente depende de la naturaleza del proyecto 🙂
Sin embargo, como @Stephen mencionó en un comentario anterior, si xxx
son el mismo campo y la herencia tiene sentido, entonces puede tener una clase abstracta principal para evitar el informe.