我有一个混合的scala / java项目 - 主要是java。我想在我的java代码上使用Findbugs,但是scala类给它带来了麻烦。所以我想将它们排除在Findbugs之外。到目前为止,我已经尝试在排除过滤器中列出scala类,但这没有帮助。我正在使用maven codehaus findbugs插件版本2.3.1。
我得到的例外主要采取以下形式:
Exception analyzing some.scala.Class using detector edu.umd.cs.findbugs.detect.FindUnrelatedTypesInGenericContainer java.lang.NullPointerException At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM$1$2.visitEnd(ClassParserUsingASM.java:319) At org.objectweb.asm.ClassReader.accept(Unknown Source) At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44) At org.objectweb.asm.ClassReader.accept(Unknown Source) At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:93) At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:414) At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:65) At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:39) At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:214) At edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:581) At edu.umd.cs.findbugs.ba.AnalysisCacheToAnalysisContextAdapter.setAppClassList(AnalysisCacheToAnalysisContextAdapter.java:319) At edu.umd.cs.findbugs.FindBugs2.createAnalysisContext(FindBugs2.java:785) At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:187) At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:348) At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1057)
答案 0 :(得分:3)
不是真正的解决方案,但FindBugs也适用于Scala生成的类文件,所以我建议将这些错误报告给FindBugs团队。当然,在大多数情况下,FindBugs的分析可能对Scala类没有多大帮助(因为编译器魔法很重),但至少FindBugs不会崩溃。我希望迟早会将FindBugs延伸到Scala课程中给予特殊处理(但如果没有人抱怨,那就不会发生: - )