6

我有一个混合的 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)
4

1 回答 1

3

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

于 2010-09-21T06:56:55.330 回答