我和Gradle一起使用Findbugs。我有一个巫婆项目Findbugs发现了潜在的错误。
错误类型ODR_OPEN_DATABASE_RESOURCE org.kec.db.connection.DBAccess.query(String)可能无法关闭PreparedStatement。
我无法更改代码,因此我想将bug检测器/访问者添加到OmitVisitors列表中。
据我了解OmitVisitors的用法,它需要一个类名列表。我的问题是我找不到bug类型和类名之间的映射。
如何省略访客?
答案 0 :(得分:1)
可以使用Findbugs filters排除某些已分析课程的特定错误。您需要提供要排除的类/错误匹配列表。在您的情况下,XML文件将如下所示:
<FindBugsFilter>
<Match>
<Class name="org.kec.db.connection.DBAccess" />
<Method name="query" />
<Bug pattern="ODR_OPEN_DATABASE_RESOURCE" />
</Match>
</FindBugsFilter>
在Gradle脚本中,需要为excludeFilter
属性设置包含已排除错误的XML文件。
findbugs {
excludeFilter = file("$rootProject.projectDir/config/findbugs/excludeFilter.xml")
}
答案 1 :(得分:0)
我下载了findbugs源并运行
find -name *.java | xargs grep -lir ODR_OPEN_DATABASE_RESOURCE
它说
./src/java/edu/umd/cs/findbugs/detect/FindOpenStream.java
所以我猜你应该使用FindOpenStream作为名称