【问题标题】:Hiding non-java classes from findbugs从 findbugs 中隐藏非 java 类
【发布时间】:2010-09-20 17:32:47
【问题描述】:

我有一个混合的 scala/java 项目 - 主要是 java。我想在我的 java 代码上使用 Findbugs,但是 scala 类给它带来了麻烦。所以我想将它们排除在 Findbugs 之外。到目前为止,我已经尝试在排除过滤器中列出 scala 类,但这没有帮助。我正在使用 maven codehaus findbugs 插件版本 2.3.1。

我得到的例外大多是这种形式:

使用检测器 edu.umd.cs.findbugs.detect.FindUnrelatedTypesInGenericContainer 分析 some.scala.Class 的异常 java.lang.NullPointerException 在 edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM$1$2.visitEnd(ClassParserUsingASM.java:319) 在 org.objectweb.asm.ClassReader.accept(未知来源) 在 edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44) 在 org.objectweb.asm.ClassReader.accept(未知来源) 在 edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:93) 在 edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:414) 在 edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:65) 在 edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:39) 在 edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:214) 在 edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:581) 在 edu.umd.cs.findbugs.ba.AnalysisCacheToAnalysisContextAdapter.setAppClassList(AnalysisCacheToAnalysisContextAdapter.java:319) 在 edu.umd.cs.findbugs.FindBugs2.createAnalysisContext(FindBugs2.java:785) 在 edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:187) 在 edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:348) 在 edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1057)

【问题讨论】:

  • 您是否分离了源目录? /src/main/java 和 src/main/scala
  • Findbugs 对 .class 文件进行操作,而不是对源文件进行操作。
  • 问题是 findbugs 在分析 scalac 生成的 *.class 文件时会创建数千个 NPE。

标签: java maven-2 scala findbugs


【解决方案1】:

并不是一个真正的解决方案,但 FindBugs 也应该适用于 Scala 生成的类文件,所以我建议将这些错误报告给 FindBugs 团队。当然,在大多数情况下,对 FindBugs 的分析可能对 Scala 类没有多大帮助(因为编译器的魔力很大),但至少 FindBugs 不应该崩溃。我希望迟早会扩展 FindBugs 以给 Scala 类一个特殊的处理(但如果没有人抱怨就不会发生 :-)

【讨论】:

  • 确实,该错误已在 findbugs 主干中修复:code.google.com/p/findbugs/source/detail?r=12121 我不确定是否有办法让 findbugs maven 插件使用 findbugs 的主干构建。
  • @Geoff Reedy 谢谢!我不得不自己对 1.3.9 代码进行修复,但这似乎让 findbugs 很高兴。希望 findbugs 2.0 很快就会发布。
猜你喜欢
  • 2020-06-30
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多