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 に答える