簡體   English   中英

當功能需要 ASM8_EXPERIMENTAL 時跳過 Spot Bugs 堆棧跟蹤

[英]Skip Spot Bugs stack traces when features require ASM8_EXPERIMENTAL

我正在使用spotbugs-maven-plugin 4.0.0 (+ spotbugs 4.0.2 依賴項)。

問題是它無法識別 Java 14條記錄

每次當它找到一條記錄或使用該記錄的 class 時,它都會打印一個長堆棧跟蹤。

[INFO] >>> spotbugs-maven-plugin:4.0.0:check (default) > :spotbugs @ core >>>
[INFO] 
[INFO] --- spotbugs-maven-plugin:4.0.0:spotbugs (spotbugs) @ core ---
[INFO] Fork Value is true
     [java] The following errors occurred during analysis:
     [java]   Unable to get XClass for com/something/MyRecord
     [java]     java.lang.UnsupportedOperationException: This feature requires ASM8_EXPERIMENTAL
     [java]       At org.objectweb.asm.ClassVisitor.visitRecordComponentExperimental(ClassVisitor.java:304)
     [java]       At org.objectweb.asm.ClassReader.readRecordComponent(ClassReader.java:929)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:704)
     [java]       At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:401)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:552)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:736)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:79)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:38)
     [java]       At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:261)
     [java]       At edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:685)
     [java]       At edu.umd.cs.findbugs.ba.AnalysisContext.setAppClassList(AnalysisContext.java:975)
     [java]       At edu.umd.cs.findbugs.FindBugs2.setAppClassList(FindBugs2.java:909)
     [java]       At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:252)
     [java]       At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)
     [java]       At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)
     [java]   Couldn't get class info for com/something/MyRecord
     [java]     java.lang.UnsupportedOperationException: This feature requires ASM8_EXPERIMENTAL
     [java]       At org.objectweb.asm.ClassVisitor.visitRecordComponentExperimental(ClassVisitor.java:304)
     [java]       At org.objectweb.asm.ClassReader.readRecordComponent(ClassReader.java:929)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:704)
     [java]       At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:401)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:552)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:736)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:79)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:38)
     [java]       At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:261)
     [java]       At edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:685)
     [java]       At edu.umd.cs.findbugs.ba.AnalysisContext.setAppClassList(AnalysisContext.java:975)
     [java]       At edu.umd.cs.findbugs.FindBugs2.setAppClassList(FindBugs2.java:909)
     [java]       At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:252)
     [java]       At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)
     [java]       At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)
     [java]   Exception analyzing com.something.MyClassThatUsesMyRecord using detector edu.umd.cs.findbugs.detect.CalledMethods
     [java]     java.lang.UnsupportedOperationException: This feature requires ASM8_EXPERIMENTAL
     [java]       At org.objectweb.asm.ClassVisitor.visitRecordComponentExperimental(ClassVisitor.java:304)
     [java]       At org.objectweb.asm.ClassReader.readRecordComponent(ClassReader.java:929)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:704)
     [java]       At edu.umd.cs.findbugs.asm.FBClassReader.accept(FBClassReader.java:44)
     [java]       At org.objectweb.asm.ClassReader.accept(ClassReader.java:401)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:552)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.parse(ClassParserUsingASM.java:736)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:79)
     [java]       At edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine.analyze(ClassInfoAnalysisEngine.java:38)
     [java]       At edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getClassAnalysis(AnalysisCache.java:261)
     [java]       At edu.umd.cs.findbugs.ba.XFactory.getXClass(XFactory.java:685)
     [java]       At edu.umd.cs.findbugs.ba.AnalysisContext.setAppClassList(AnalysisContext.java:975)
     [java]       At edu.umd.cs.findbugs.FindBugs2.setAppClassList(FindBugs2.java:909)
     [java]       At edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:252)
     [java]       At edu.umd.cs.findbugs.FindBugs.runMain(FindBugs.java:395)
     [java]       At edu.umd.cs.findbugs.FindBugs2.main(FindBugs2.java:1231)
     ...

[INFO] Done SpotBugs Analysis....

我怎樣才能擺脫這些詳細的異常?

雖然插件的最新版本通過 JDK-15 讀取了支持,但 ASM 對預覽功能的支持需要 8.0+ 版本,而庫仍在7.3.1上。

也就是說, 對其可部署分支的更改應該可以解決這個問題。 具體區別在於:

- <asm.version>7.3.1</asm.version>
+ <asm.version>8.0.1</asm.version>

因此,請等待下一個版本,同時要求他們盡快發布。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM