Confira o uso do supressionCommentFilter em http://checkstyle.sourceforge.net/config_filters.html#SuppressionCommentFilter . Você precisará adicionar o módulo ao seu checkstyle.xml
<module name="SuppressionCommentFilter"/>
e é configurável. Assim, você pode adicionar comentários ao seu código para desativar o estilo de verificação (em vários níveis) e, em seguida, reativar novamente usando os comentários no seu código. Por exemplo
//CHECKSTYLE:OFF
public void someMethod(String arg1, String arg2, String arg3, String arg4) {
//CHECKSTYLE:ON
Ou melhor ainda, use esta versão mais aprimorada:
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
que permite desativar verificações específicas para linhas de código específicas:
//CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
catch (Exception e)
//CHECKSTYLE.ON: IllegalCatch
* Nota: você também precisará adicionar o FileContentsHolder
:
<module name="FileContentsHolder"/>
Veja também
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
debaixo de SuppressionFilter
seção na mesma página, que permite desativar verificações individuais de recursos correspondentes ao padrão.
Portanto, se você possui seu checkstyle.xml:
<module name="ParameterNumber">
<property name="id" value="maxParameterNumber"/>
<property name="max" value="3"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
Você pode desativá-lo no seu arquivo xml de supressão com:
<suppress id="maxParameterNumber" files="YourCode.java"/>
Outro método, agora disponível no Checkstyle 5.7, é suprimir violações por meio da @SuppressWarnings
anotação java. Para fazer isso, você precisará adicionar dois novos módulos ( SuppressWarningsFilter
e SuppressWarningsHolder
) no seu arquivo de configuração:
<module name="Checker">
...
<module name="SuppressWarningsFilter" />
<module name="TreeWalker">
...
<module name="SuppressWarningsHolder" />
</module>
</module>
Em seguida, dentro do seu código, você pode fazer o seguinte:
@SuppressWarnings("checkstyle:methodlength")
public void someLongMethod() throws Exception {
ou, para várias supressões:
@SuppressWarnings({"checkstyle:executablestatementcount", "checkstyle:methodlength"})
public void someLongMethod() throws Exception {
NB: O checkstyle:
prefixo " " é opcional (mas recomendado). De acordo com os documentos, o nome do parâmetro deve estar em letras minúsculas, mas a prática indica que qualquer caso funciona.