2010-09-20 26 views
6

Tôi có dự án scala/java hỗn hợp - chủ yếu là java. Tôi muốn sử dụng Findbugs trên mã java của tôi, nhưng các lớp scala đang gây rắc rối cho nó. Vì vậy, tôi muốn loại trừ chúng khỏi Findbugs. Cho đến nay tôi đã thử liệt kê các lớp scala trong một bộ lọc loại trừ, nhưng điều đó không giúp ích gì. Tôi đang sử dụng phiên bản plugin findhaus của maven codehaus 2.3.1.Ẩn các lớp không phải java từ findbugs

Các trường hợp ngoại lệ Tôi nhận được chủ yếu lấy mẫu đơn này:

 
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

Bạn đã tách các thư mục nguồn của mình chưa?/src/main/java và src/main/scala – crowne

+3

Findbugs hoạt động trên các tệp .class, không phải tệp nguồn. –

+0

Vấn đề là các findbugs tạo ra 1000s NPE khi phân tích các tệp * .class được tạo bởi scalac. –

Trả lời

3

Không thực sự là một giải pháp, nhưng FindBugs nên làm việc cho Scala tạo ra các file lớp là tốt, vì vậy tôi muốn đề nghị để báo cáo các lỗi này với Nhóm FindBugs. Tất nhiên, việc phân tích FindBugs có thể không hữu ích cho các lớp Scala trong hầu hết các trường hợp (vì ma thuật biên dịch nặng), nhưng ít nhất FindBugs không nên sụp đổ. Tôi hy vọng rằng sớm hoặc muộn FindBugs sẽ được mở rộng để cung cấp cho các lớp Scala một điều trị đặc biệt (nhưng điều đó sẽ không xảy ra nếu không ai phàn nàn :-)

+1

Thật vậy, lỗi đã được sửa trong thân cây tìm kiếm: http://code.google.com/p/findbugs/source/detail?r=12121 Tôi không chắc chắn liệu có cách nào để làm cho trình tìm kiếm tìm kiếm maven plugin sử dụng xây dựng thân cây tìm kiếm mặc dù. –

+0

@Geoff Reedy Cảm ơn! Tôi đã phải áp dụng bản sửa lỗi cho mã 1.3.9, nhưng có vẻ như nó đã làm cho những con bọ tìm thấy hạnh phúc. Hy vọng rằng, findbugs 2.0 sẽ sớm ra mắt. – sblundy

Các vấn đề liên quan