Checkstyle 13.6.0, обновление от Checkstyle, сфокусировано на стабильности и улучшенной совместимости с современными функциями Java. Этот релиз от 2026-06-15 важен для QA-инженеров и разработчиков, использующих статический анализ кода.
Ключевые Изменения
Новые Возможности и Улучшения:
- Группировка Конструкторов:
ConstructorsDeclarationGroupingCheckтеперь включает новое свойствоrequired. Это позволяет упорядочивать конструкторы по возрастанию арности, обеспечивая единообразный стиль кода. - Улучшение
NoLineWrap: Исправлено ложное срабатывание для перенесенных объявленийimport module(MODULE_IMPORT), что делает проверку более точной.
Основные Исправления Ошибок:
Значительная часть этого обновления посвящена устранению проблем, связанных с JEP 512: Compact Source Files and Instance Main Methods, представленным в JDK 25.
- Стабильность JEP 512: Исправлено множество
NullPointerException(NPE), возникающих в компактных исходных файлах для различных проверок, включаяMagicNumberCheck,EmptyLineSeparatorCheck,FinalLocalVariableCheck,ModifiedControlVariableCheck,MissingOverrideCheck,MissingOverrideOnRecordAccessorCheck,MethodNameCheckиUnusedLocalVariableCheck. Это значительно повышает надежность Checkstyle при анализе современных Java-кодовых баз. - Объявления
import module: Исправлено несколько ложных срабатываний и некорректных отступов для объявленийimport moduleв проверкахEmptyLineSeparatorиIndentation. - Проверки стиля OpenJDK: Добавлены новые проверки для стиля OpenJDK §3.3 - Import statements и Wildcard Imports, обеспечивающие лучшее соответствие этим рекомендациям.
- Парсер Javadoc: Устранено множество проблем с парсером Javadoc, что улучшило его точность и предотвратило ошибки в сложных исходных файлах, таких как
java/lang/Character.java. - Ложные Срабатывания:
PackageDeclarationCheckиOuterTypeFilenameбольше не сообщают о ложных срабатываниях в компактных исходных файлах JEP 512. - Файлы SARIF и подавления: Улучшения включают корректное процентное кодирование двойных кавычек в URI файлов SARIFLogger и экранирование имен файлов в сгенерированных файлах подавления.
Полный список изменений доступен в официальных примечаниях к выпуску.
Влияние на QA-команды
QA-команды получат выгоду от более надежного статического анализа, особенно при работе с проектами, использующими современные функции Java, такие как компактные исходные файлы JEP 512. Меньшее количество ложных срабатываний и NullPointerException означает более чистые отчеты и меньше времени на разбор нерелевантных проблем, что позволяет сосредоточиться на реальных вопросах качества кода. Это обновление гарантирует, что Checkstyle остается эффективным инструментом для обеспечения стандартов кодирования.
