【FAQ】findbugs 出错:java.io.IOException: No files to analyze could be opened

2 篇文章 0 订阅
2 篇文章 0 订阅

【问题描述】

使用 findbugs 扫描 java web 代码,为了方便,直接复用之前 android 项目的配置文件。

扫描时却提示:java.io.IOException: No files to analyze could be opened


使用的 findbugs task 如下:

apply plugin: 'findbugs'

findbugs {
    toolVersion = '3.0.1'
    ignoreFailures = true
}

task findbugs(type: FindBugs) {
    effort = "max"
    reportLevel = "high"

    source = fileTree('src/main/java/')
    classes = files("$project.buildDir/intermediates/classes")
    classpath = files()

    excludeFilter = new File("${project.rootDir}/findbugs-filter.xml")

    reports {
        xml.enabled = true
        xml {
            destination "$project.buildDir/reports/findbugs/findbugs.xml"
        }
    }
}

【原因分析】

按提示的意思,是没有文件可以分析,而 findbugs 分析的是 class 文件,所以就从 classes 配置来找原因。发现 java 和 android 构建后的目录结构是不一样的(红色的文件夹):

classes = files("$project.buildDir/intermediates/classes")    -----  android
classes = files("$project.buildDir/classes")                            -----  java

【解决方法】

修改 classes 参数值,分开两个配置文件,按工程分别部署 android 项目和 java 项目


【补充另外一种场景】

classes 路径配置没有问题,可是依然提示 No files to analyze could be opened。那就需要从执行的命令下手:

请记住:gradle build findbugs 和 gradle build && gradle findbugs 是不一样的。

前者是一条命令,会在每个子模块编译后即执行 findbugs,后者是两条命令,会在整个工程都编译后才执行 findbugs。

所以结果不言而喻,前者很容易会碰到提示 classes 找不到的异常。拆分开两条命令即可,或者,也可以改代码:)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值