内容提要
Qodana 2026.2发布,提升代码质量与安全分析。新增代码覆盖率报告自动检测,IDE中高亮未覆盖新行。扩展安全检查,支持自定义规则及后量子密码学检测,引入SABER基准测试。Laravel检查默认启用,新增许可证审计质量门禁,防止违规依赖进入流水线。
延伸解读
覆盖率报告自动检测,减少配置负担
Qodana 2026.2 自动识别常见位置的覆盖率报告,如 JVM 的 Jacoco/Kover、JS 的 lcov.info、PHP 的 clover.xml 等,无需手动复制到 .qodana/code-coverage 目录。这简化了构建配置,让团队更快获得覆盖率数据。若需自定义,可通过 codeCoverageLocations 参数指定,或禁用相关检查。
安全分析扩展:自定义规则与后量子密码学
Qodana for .NET 新增基于 OpenGrep 的自定义规则支持,可放置于 .qodana/opengrep 目录,并集成多文件污点分析,检测 SQL 注入、XSS 等漏洞。同时,Qodana for JVM 引入后量子密码学检查,按 NIST 建议分五个等级,帮助团队提前应对量子计算威胁,实现渐进式迁移。
SABER 基准测试:透明评估 SAST 能力
SABER 是公开的静态分析基准评估工具,基于 CodeQL、WebGoat.NET 等基准,自动运行 Qodana 并对比预期结果。所有配置和结果在 TeamCity 上公开,支持访客访问,便于用户跟踪 Qodana 安全检测能力的演进,增强可信度。
许可证审计质量门禁,阻断违规依赖
新增的许可证审计质量门禁支持 failOnProhibited 和 failOnUnknown 选项,可在依赖引入时直接失败构建,防止禁止或未知许可证的依赖进入流水线。该门禁独立于检查结果,仅需启用 CheckDependencyLicenses 检查,且支持增量分析,只对新违规生效。
Q&A
Qodana 2026.2 在代码覆盖率方面有哪些改进?
Qodana 2026.2 改进了代码覆盖率报告的用户体验:在 IDE 中显示增量分析结果,高亮未覆盖的新行,并自动检测常见位置的覆盖率报告,减少了配置步骤。
Qodana 2026.2 如何自动检测代码覆盖率报告?
Qodana 2026.2 会自动检测项目中的覆盖率报告,例如 JVM/Android 支持 Jacoco 和 Kover 的默认路径,JS 支持 coverage/lcov.info,PHP 支持 clover.xml 和 coverage.xml,Python 支持 coverage.xml,Go 支持 coverage.out 或 cover.out,.NET 支持 coverage.cobertura 和 coverage.info。
Qodana 2026.2 新增了哪些安全检测功能?
Qodana 2026.2 扩展了 .NET linter 的安全分析,新增了模式匹配和跨文件污点分析,可检测 SQL 注入、命令注入、XSS 和路径遍历等漏洞。同时支持自定义 OpenGrep 规则,并引入了后量子密码学(PQC)检查。
什么是 SABER?它有什么作用?
SABER 是静态分析基准评估运行器,用于运行 Qodana 对公开安全基准进行测试,并比较结果与已知预期。当前基准包括 CodeQL 基准、WebGoat.NET 和后量子密码学演示项目,结果公开在 TeamCity 上,便于评估 Qodana 的 SAST 能力。
Qodana 2026.2 中的后量子密码学检查是如何工作的?
Qodana for JVM 新增了后量子密码学检查,根据 NIST 建议分为五个优先级级别(PqcMinLevel1 到 PqcMinLevel5),每个级别包含前一级别的检查。这些检查通过 OpenGrep 和污点分析识别受影响的代码,并引导开发者使用后量子密码学替代方案。
Qodana 2026.2 对 Laravel 项目有什么新支持?
Qodana for PHP 现在默认启用 Laravel 检查,可以减少 PHP 代码中的误报,并分析 Laravel 特有的代码问题,例如直接给 guarded 属性赋值。
Qodana 2026.2 的许可证审计质量门禁有哪些新选项?
Qodana 2026.2 新增了许可证审计质量门禁,支持两个选项:failOnProhibited(当依赖使用禁止的许可证时失败)和 failOnUnknown(当依赖许可证未知时失败)。这些门禁在增量分析中只对新违规生效。