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 остается эффективным инструментом для обеспечения стандартов кодирования.