【发布时间】: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