2010-09-20 21 views
6

Karışık bir scala/java projem var - çoğunlukla java. Java kodumda Findbugs kullanmak istiyorum ama scala sınıfları sorun veriyor. Bu yüzden onları Findbugs'tan çıkarmak isterim. Şimdiye kadar scala sınıflarını dışlama filtresinde listelemeyi denedim, ancak bu yardımcı olmuyor. Ben maven codehaus findbugs eklentisi sürüm 2.3.1 kullanıyorum.Java olmayan sınıfları findbugs'dan gizleme

istisnalar Bu formda çoğunlukla alıyorum: gerçekten

 
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

Kaynak dizinlerinizi ayırdınız mı?/src/main/java ve src/main/scala – crowne

+3

Findbugs .class dosyaları üzerinde çalışır, kaynak dosyaları değil. –

+0

Sorun, scalac tarafından oluşturulan * .class dosyaları analiz edilirken findbug'ların 1000'lerce NPE oluşturmasıdır. –

cevap

3

değil çözüm, ancak Scala yanı sınıf dosyaları oluşturulan için FindBugs çalışması gerekir, bu yüzden bu hataları bildirmek için öneririm FindBugs takımı. Elbette FindBugs analizi çoğu durumda Scala sınıfları için çok yararlı olmayabilir (ağır derleyici büyüsü nedeniyle), ancak en azından FindBugs çökmemelidir. Er ya da geç FindBugs Scala sınıflarına özel bir tedavi vermek için genişletileceğini umuyorum (ama kimse şikayet etmezse bu olmayacak :-)

+1

Gerçekten de, findbugs gövdesinde hata düzeltildi: http://code.google.com/p/findbugs/source/detail?r=12121 findbugs maven eklentisini kullanmanın bir yolu olup olmadığından emin değilim findbugs gövde yapısını olsa da. –

+0

@Geoff Reedy Teşekkürler! Düzeltmeyi 1.3.9 koduna kendim uygulamam gerekiyordu, ancak bulbugs'u mutlu etmiş gibi görünüyor. Umarım, findbugs 2.0 yakında çıkacak. – sblundy