2010-09-20 17 views
6

Mam mieszany projekt scala/java - głównie java. Chciałbym użyć Findbugs na moim kodzie java, ale klasy scala dają mu kłopot. Więc chciałbym wykluczyć je z Findbugs. Do tej pory próbowałem wymieniać klasy scala w filtrze wykluczającym, ale to nie pomaga. Używam wtyczki maven codehaus findbugs w wersji 2.3.1.Ukrywanie klas innych niż java z findbugs

Wyjątki Dostaję głównie wziąć tę postać:

 
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

Czy oddzieliłeś katalogi źródłowe?/src/main/java i src/main/scala – crowne

+3

Findbugs działa na plikach .class, a nie na plikach źródłowych. –

+0

Problem polega na tym, że findbugs tworzy 1000 elementów NPE podczas analizowania plików * .class generowanych przez skalak. –

Odpowiedz

3

Niezupełnie rozwiązanie, ale FindBugs powinny pracować dla Scala wygenerowane pliki klas, tak więc sugeruję zgłosić te błędy do Zespół FindBugs. Oczywiście analiza FindBugs może być w większości przypadków niezbyt pomocna dla klas Scala (z powodu ciężkiej magii kompilatora), ale przynajmniej FindBugs nie powinno się zawieszać. Mam nadzieję, że prędzej czy później FindBugs zostanie rozszerzony o specjalne zajęcia z klas Scala (ale tak się nie stanie, jeśli nikt się nie skarży :-)

+1

Rzeczywiście, błąd został naprawiony w bagażniku findbugs: http://code.google.com/p/findbugs/source/detail?r=12121 Nie jestem pewien, czy istnieje sposób na to, aby wtyczka findNugs używała budowa bagażnika z findbugs. –

+0

@Geoff Reedy Thanks! Musiałem samemu zaaplikować poprawkę do kodu 1.3.9, ale wydaje się, że sprawiło to, że findbugs był szczęśliwy. Mamy nadzieję, że findbugs 2.0 wkrótce się pojawi. – sblundy

Powiązane problemy