Если вы предпочитаете использовать аннотации для выборочного отключения правил, теперь это возможно, используя аннотацию @SuppressWarnings
, начиная с Checkstyle 5.7 (и поддерживаемая плагином Checkstyle Maven 2.12 +).
Сначала, в checkstyle.xml
добавьте модуль SuppressWarningsHolder
в TreeWalker
:
<module name="TreeWalker">
<!-- Make the @SuppressWarnings annotations available to Checkstyle -->
<module name="SuppressWarningsHolder" />
</module>
Затем включите SuppressWarningsFilter
там (в качестве брата с TreeWalker
):
<!-- Filter out Checkstyle warnings that have been suppressed with the @SuppressWarnings annotation -->
<module name="SuppressWarningsFilter" />
<module name="TreeWalker">
...
Теперь вы можете аннотировать, например метод, который вы хотите исключить из некоторого правила Checkstyle:
@SuppressWarnings("checkstyle:methodlength")
@Override
public boolean equals(Object obj) {
// very long auto-generated equals() method
}
Префикс checkstyle:
в аргументе @SuppressWarnings
является необязательным, но мне нравится это как напоминание о том, откуда это предупреждение. Имя правила должно быть строчным.
Наконец, если вы используете Eclipse, он будет жаловаться на неизвестный ему аргумент:
Unsupported @SuppressWarnings ("checkstyle : methodlength ")
blockquote>Вы можете отключить это предупреждение Eclipse в настройках, если хотите:
Preferences: Java --> Compiler --> Errors/Warnings --> Annotations --> Unhandled token in '@SuppressWarnings': set to 'Ignore'