2012-09-04 12 views
6

Estamos usando sonar para administrar la calidad de nuestro código. Tengo un problema con el "número mágico" violación de la APP anotación de esa manera:Violación de sonar de número mágico en las anotaciones de JPA

@NotNull 
@Size(min = 1, max = 300) 
@Column(name = "NAME") 

¿Es esta una verdadera violación de anotación?

Si no, ¿cómo podemos manejar este tipo de violación de Sonar?

Respuesta

6

La violación Número mágico no comprende si este número aparece en una anotación o no. En mi humilde opinión, este es un falso positivo y puede tratarlo de dos maneras. O desactive esta regla en su perfil de calidad o cree una clase MAGICNUMBER y enumere todos los números que está utilizando como propiedades estáticas. Por ejemplo buscar la siguiente clase

public final class MAGICNUMBER { 
public static final int L8000 = 8000; 
public static final int L300 = 300; 

}

entonces usted puede utilizar en su clase como esta

@NotNull 
@Size(min = 1, max = MAGICNUMBER.L300) 
@Column(name = "NAME") 
+0

No me gustan estos dos sentidos. Quiero que Sonar lo maneje sin ningún cambio en mi código. –

+3

Luego deshabilite la regla relevante en su perfil de Sonar – ppapapetrou

4

No estoy seguro de lo que era en 2012, pero encontrar esto ahora , parece que hay una forma de desactivarlo solo para anotaciones en v 3.3.2, y seguramente por encima de eso

Disable magic number in annotation. Shown is Sonar 3.3.2

1

Puede editar la regla en su archivo de estilo de control para que no tenga en cuenta la anotación, los métodos de código hash o números específicos.

<module name="MagicNumber"> 
    <property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/> 
    <property name="ignoreHashCodeMethod" value="true" /> 
    <property name="ignoreAnnotation" value="true" /> 
</module> 
Cuestiones relacionadas