找回密码
 立即注册
搜索
查看: 93|回复: 4

百目 JArgus v2.0.6 — 静态检查器误报治理版本

[复制链接]

4

主题

37

回帖

0

积分

积分
0
发表于 2026-10-12 09:30:05 | 显示全部楼层 |阅读模式
百目 JArgus v2.0.6

静态检查器误报治理专项版本:注解修饰的代码、编译器生成方法与框架反射调用点不再被误判,死代码检测理解 lambda 与方法引用,多个检查器的豁免规则对齐业界惯例。

github: https://github.com/vfaner/jargus/releases/tag/v2.0.6

Gitee: https://gitee.com/super_rgh/jargus/releases/tag/v2.0.6
本次更新
死代码检测(未使用方法)

•
框架反射调用的方法不再误报死代码:@Scheduled、@PostConstruct/@PreDestroy、@EventListener、@KafkaListener/@RabbitListener/@JmsListener 等消息监听、@Bean、@ExceptionHandler、AspectJ 通知(@Around/@Before 等)、JUnit 测试方法(@Test/@BeforeEach 等)、Jackson 序列化回调(@JsonCreator/@JsonValue 等)共 31 种注解标记的方法自动豁免——它们由调度器、容器、事件总线、测试运行器在运行时调用,源码里本就没有调用点。

•
编译器生成方法不再误报:lambda 体(lambdax0)、内部类合成访问器(access$000)、桥方法经 invokedynamic 或编译器内部机制调用,字节码与 AST 两条分析路径均识别并排除;lambda 体内部的真实调用边仍正常入图。

•
方法引用算作使用:Foo::bar 在字节码中经 invokedynamic 引用目标方法、没有普通调用指令,之前会被误报死代码;现在解析 bootstrap 方法句柄补齐调用边。


检查器误报治理

•
魔法数字:注解属性中的数字(@Size(max=500)、@Retryable(maxAttempts=3))与 @interface 成员默认值属框架配置语义,不再报告。

•
System.out:main 方法(CLI 入口与终端交互的正常手段)与测试代码(src/test 目录、*Test/*Tests/*TestCase/*IT 命名)中的输出不再报告。

•
废弃方法调用:只匹配无 scope 或 this/super 的同类调用,stream.close() 这类跨对象同名调用不再因本地恰有同名废弃方法被误伤;废弃方法内部或 @SuppressWarnings("deprecation") 之下的调用视为既定迁移路径不报告;同一调用点命中多个废弃重载只报一次。

•
并发问题:并发容器(ConcurrentHashMap/CopyOnWriteArrayList 等)、阻塞队列、Atomic* 原子类、锁与同步器(ReentrantLock/CountDownLatch/Semaphore 等)、执行器框架本身就是为跨线程共享设计的,单例 Bean 中以非 final 字段声明不再触发共享可变状态告警。

•
命名规范:serialVersionUID(JLS 规定固定名)与 Logger 声明惯例(private static final Logger log = ...)不再要求全大写常量命名;接口字段隐式 public static final,改按常量规则检查,接口里的 MAX_SIZE 不再被误报小驼峰违规。

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-10-12 09:45:01 | 显示全部楼层
好文,JArgus的趋势基本被楼主说中了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-12 10:15:01 | 显示全部楼层
已阅,受益匪浅,楼主加油更新。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-12 10:45:01 | 显示全部楼层
支持原创,内容很扎实,持续关注。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-12 11:15:01 | 显示全部楼层
v2.0.6和百目结合起来讲的思路很好,这种对比很少见。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}