2012-09-04 9 views
6

Utilizziamo il sonar per la gestione della nostra qualità del codice. Ho un problema con "numero magico" violazione per JPA annotazioni del genere:Violazione del numero magico di sonar sulle annotazioni JPA

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

Si tratta di una vera violazione per l'annotazione?

In caso contrario, come possiamo gestire questo tipo di violazione del sonar?

risposta

6

La violazione del numero magico non comprende se questo numero appare in un'annotazione oppure no. IMHO questo è un falso positivo e puoi affrontarlo in due modi. Disabilita questa regola nel tuo profilo di qualità o crea una classe MAGICNUMBER ed elenca tutti i numeri che stai usando come proprietà statiche. Ad esempio esaminare la seguente classe

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

}

Quindi è possibile utilizzare il metodo nella classe come questo

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

Non mi piacciono questi due modi. Voglio che Sonar lo gestisca senza alcuna modifica nel mio codice. –

+3

Quindi disabilitare la regola pertinente nel proprio profilo Sonar – ppapapetrou

4

Non sono sicuro di come è stato nel 2012, ma trovare questo ora , sembra esserci un modo per disattivarlo solo per annotazioni v 3.3.2, e sicuramente superiore a quella

Disable magic number in annotation. Shown is Sonar 3.3.2

1

È possibile modificare la regola nel file stile di controllo in modo che non tenga conto delle annotazioni, dei metodi hashcode o dei numeri specifici.

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