You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle环境下配置Checker Framework仅对单个Java类执行静态分析

背景

我当前通过Gradle使用Checker Framework,相关配置如下:
build.gradle配置:

plugins {
         id 'org.checkerframework' version '0.6.3'
}

checkerFramework {
    checkers = [
            'org.checkerframework.checker.nullness.NullnessChecker',
            'org.checkerframework.checker.tainting.TaintingChecker'
    ]
}
apply plugin: 'org.checkerframework'

当前运行./gradlew build命令时,Checker Framework会扫描构建流程中的所有类,但我仅需要对指定的单个.java文件执行静态分析。

问题

如何调整配置,才能限制Checker Framework仅对单个指定Java文件执行静态分析?

解决方案

方案1:临时单次扫描(无需修改全局配置)

直接在执行命令时传入过滤器参数,仅本次运行生效,不会影响其他构建流程:

./gradlew compileJava -Acheckerframework.filter=相对路径/目标文件名.java

示例:如果目标文件是src/main/java/com/example/utils/DateUtil.java,参数可以写为-Acheckerframework.filter=com/example/utils/DateUtil.java

方案2:固定配置仅扫描指定文件

修改build.gradle中的checkerFramework配置块,添加include规则即可永久生效:

plugins {
         id 'org.checkerframework' version '0.6.3'
}

checkerFramework {
    checkers = [
            'org.checkerframework.checker.nullness.NullnessChecker',
            'org.checkerframework.checker.tainting.TaintingChecker'
    ]
    // 新增配置:仅扫描指定的单个Java文件,支持通配符匹配
    include = ["**/DateUtil.java"]
}
apply plugin: 'org.checkerframework'

如果项目存在重名文件,直接填写完整的包路径即可,例如include = ["com/example/utils/DateUtil.java"]。

内容的提问来源于stack exchange,提问作者isakbob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:54:10