代码之家  ›  专栏  ›  技术社区  ›  Bob Cross n8wrl

如何根据单个findbugs检测器的结果使构建失败?

  •  1
  • Bob Cross n8wrl  · 技术社区  · 14 年前

    如果您正在使用 Findbugs 对于编译的代码检查,是否有可能基于单个检测器或检测器类别的结果而导致构建失败?

    例如,我想确保没有任何与空指针相关的检测(中的前缀“np”)。 this list )任何优先权。同样,我们真的不想有 wait not in loop 情况。也就是说,我不一定想让基于国际化检测的构建失败,因为这些对我们的应用程序不是立即关键的。

    所需的最终状态是一个过程,我们可以针对从IDE级别(Eclipse和NetBeans)到发布级别(构建是使用CruiseControl生成的)的各种开发阶段进行调整。

    注意:我知道Eclipse和NetBeans都内置了类似的检测方法,但这是一个特定于findbugs的问题。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Tim Visher    14 年前

    来自 FindBugs Using the Ant Task section :

    includeFilter

    可选属性。它指定过滤器的文件名,指定报告哪些错误。见 Chapter 8, Filter Files .

    第8章:

    但是,过滤器也可以用于选择要具体报告的错误实例:

    $ findbugs -textui -include myIncludeFilter.xml myApp.jar

    1. 通过指定所有类的缩写来匹配特定的测试。
     <Match>
         <Bug code="DE,UrF,SIC" />
     </Match></pre>
    

    所以我假设是这样的:

    <Match>
        <Bug code="Wa,NP" />
    </Match>
    

    在您的include过滤器和

    <findbugs includeFilter="path/to/includefilter.xml"...
    

    会是你想要的。

    这个 path/to /includeFilter (或) excludeFilter )可能是基于另一个属性的值设置的属性,该属性可以默认为 dev 对于常规构建, test 对于CI构建,以及 deploy 对于部署生成,并指定您希望在每个阶段看到或不希望看到的特定警告。

    希望有帮助。