Scopri l'uso di supressionCommentFilter su http://checkstyle.sourceforge.net/config_filters.html#SuppressionCommentFilter . Dovrai aggiungere il modulo a checkstyle.xml
<module name="SuppressionCommentFilter"/>
ed è configurabile. Quindi puoi aggiungere commenti al tuo codice per disattivare lo stile di controllo (a vari livelli) e quindi riaccenderlo attraverso l'uso dei commenti nel tuo codice. Per esempio
//CHECKSTYLE:OFF
public void someMethod(String arg1, String arg2, String arg3, String arg4) {
//CHECKSTYLE:ON
O ancora meglio, usa questa versione più ottimizzata:
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
che consente di disattivare controlli specifici per specifiche righe di codice:
//CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
catch (Exception e)
//CHECKSTYLE.ON: IllegalCatch
* Nota: dovrai anche aggiungere FileContentsHolder
:
<module name="FileContentsHolder"/>
Guarda anche
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
nella SuppressionFilter
sezione in quella stessa pagina, che consente di disattivare i singoli controlli per le risorse con pattern corrispondenti.
Quindi, se hai nel tuo checkstyle.xml:
<module name="ParameterNumber">
<property name="id" value="maxParameterNumber"/>
<property name="max" value="3"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
Puoi disattivarlo nel tuo file xml di soppressione con:
<suppress id="maxParameterNumber" files="YourCode.java"/>
Un altro metodo, ora disponibile in Checkstyle 5.7, è quello di eliminare le violazioni tramite l' @SuppressWarnings
annotazione java. Per fare ciò, dovrai aggiungere due nuovi moduli ( SuppressWarningsFilter
e SuppressWarningsHolder
) nel tuo file di configurazione:
<module name="Checker">
...
<module name="SuppressWarningsFilter" />
<module name="TreeWalker">
...
<module name="SuppressWarningsHolder" />
</module>
</module>
Quindi, all'interno del tuo codice puoi effettuare le seguenti operazioni:
@SuppressWarnings("checkstyle:methodlength")
public void someLongMethod() throws Exception {
oppure, per soppressioni multiple:
@SuppressWarnings({"checkstyle:executablestatementcount", "checkstyle:methodlength"})
public void someLongMethod() throws Exception {
NB: il checkstyle:
prefisso " " è facoltativo (ma consigliato). Secondo i documenti, il nome del parametro deve essere in minuscolo, ma la pratica indica che tutti i casi funzionano.