Перевірте використання supressionCommentFilter на веб-сайті http://checkstyle.sourceforge.net/config_filters.html#SuppressionCommentFilter . Вам потрібно буде додати модуль до свого checkstyle.xml
<module name="SuppressionCommentFilter"/>
і це налаштовується. Таким чином, ви можете додавати коментарі до свого коду, щоб вимкнути контрольний стиль (на різних рівнях), а потім знову ввімкнути через використання коментарів у своєму коді. Напр
//CHECKSTYLE:OFF
public void someMethod(String arg1, String arg2, String arg3, String arg4) {
//CHECKSTYLE:ON
Або ще краще, скористайтеся цією більш переробленою версією:
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
що дозволяє вимкнути конкретні чеки для конкретних рядків коду:
//CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
catch (Exception e)
//CHECKSTYLE.ON: IllegalCatch
* Примітка. Вам також потрібно буде додати FileContentsHolder
:
<module name="FileContentsHolder"/>
Дивитися також
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
під SuppressionFilter
розділом на цій самій сторінці, який дозволяє вимкнути окремі чеки на відповідність шаблону ресурсам.
Отже, якщо у вас є у вашому checkstyle.xml:
<module name="ParameterNumber">
<property name="id" value="maxParameterNumber"/>
<property name="max" value="3"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
Ви можете вимкнути його у файлі xml для придушення за допомогою:
<suppress id="maxParameterNumber" files="YourCode.java"/>
Інший метод, тепер доступний у Checkstyle 5.7, - це придушення порушень за допомогою @SuppressWarnings
анотації Java. Для цього вам потрібно буде додати два нові модулі ( SuppressWarningsFilter
і SuppressWarningsHolder
) у свій файл конфігурації:
<module name="Checker">
...
<module name="SuppressWarningsFilter" />
<module name="TreeWalker">
...
<module name="SuppressWarningsHolder" />
</module>
</module>
Потім у своєму коді ви можете зробити наступне:
@SuppressWarnings("checkstyle:methodlength")
public void someLongMethod() throws Exception {
або, для численних придушень:
@SuppressWarnings({"checkstyle:executablestatementcount", "checkstyle:methodlength"})
public void someLongMethod() throws Exception {
Примітка:checkstyle:
Префікс " " необов'язковий (але рекомендується). Згідно з документами, назва параметра має бути в усіх малих літерах, але практика вказує на те, що вся справа працює.