【问题标题】:Can I tell findbugs to ignore classes I am unable to add?我可以告诉 findbugs 忽略我无法添加的类吗?
【发布时间】:2010-07-30 17:13:35
【问题描述】:

Findbugs 报告:

findbugs:
 [findbugs] Executing findbugs from ant task
 [findbugs] Running FindBugs...
 [findbugs] The following classes needed for analysis were missing:
 [findbugs]   com.company.OptionalClass
 [findbugs] Warnings generated: 11
 [findbugs] Missing classes: 2
 [findbugs] Calculating exit code...
 [findbugs] Setting 'missing class' flag (2)
 [findbugs] Setting 'bugs found' flag (1)
 [findbugs] Exit code set to: 3
 [findbugs] Java Result: 3
 [findbugs] Classes needed for analysis were missing
 [findbugs] Output saved to findbugs.xml
BUILD SUCCESSFUL

这个 OptionalClass 是从第三方 jar 中引用的,我没有它的源代码,也不想对其进行 findbugs 分析。它指的是我的类路径或其他任何地方没有的类。当我们的第三方jar以某种方式配置时,这个类可能在某些情况下使用。

有没有办法告诉 findbugs 忽略这个类?

请注意,它会完成分析并生成findbugs.xml 报告,因此这是一个小问题。

【问题讨论】:

    标签: java findbugs


    【解决方案1】:

    出现此消息是因为您在二进制类的某处引用了该类。这并不一定意味着 FindBugs 试图分析 com.company.OptionalClass 来报告它;相反,FindBugs 更有可能对其进行分析以获取有关引用它的类的更多信息。

    考虑您确实想要分析的一些源代码:

    package my.actual.codebase;
    import com.some.third.party.stuff.OptionalClass;
    
    class ReferencesOptionalClass extends OptionalClass {}
    

    这种示例在测试类中很常见,它引用例如org.junit.@Test 但 JUnit jar 未包含在您要分析的内容中。

    在上面的示例中,您确实需要ReferenceOptionalClass 的结果,但为了获得它们,FindBugs 的某些部分需要查看OptionalClass。如果它不能这样做,因为它不存在,它会报告该类丢失[1]。当 FindBugs 找不到该类时,它通常只是中止它正在尝试执行的特定类型的分析,并继续进行其余的分析而不会出现问题。

    简单的答案是,如果您对 FindBugs 为您提供的分析水平感到满意,那么请忽略该错误。

    [1] 请注意,这甚至可能是一个传递引用,即您的代码包含类 A,它在辅助 JAR 中引用 B,然后引用 OptionalClass。

    【讨论】:

      【解决方案2】:

      不, 但是,如果将 jar 添加到 findbugs 项目文件的“辅助 jars”部分,则不需要源代码或为此代码生成 findbugs 报告。

      【讨论】:

      • 我也没有编译类的jar。
      【解决方案3】:

      要忽略第三方类,请在使用命令行时指定选项-auxclasspath classpath,或在使用您的第三方jar 所在的ant 任务时提供嵌套元素<auxClasspath refid="classpath"> classpath

      【讨论】:

        猜你喜欢
        • 2022-08-19
        • 2015-11-05
        • 2015-08-04
        • 2013-12-25
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        • 2019-11-24
        • 2011-10-30
        相关资源
        最近更新 更多