• 更加紧密团结在以习近平同志为核心的党中央周围  2019-05-21
  • 马拉维“红旗飘飘”十年间,中国工程印上了当地纸币 2019-05-21
  • 庆祝人民日报创刊70周年系列访谈之颜世贵 2019-05-15
  • 国产新型雷达芯片华睿2号与组网中心同时亮相 2019-05-15
  • VRAR从热转凉 追风上市公司“跌落神坛”追风上市公司“跌落神坛”-手机行情 2019-05-06
  • The GNU General Public License v3.0 2019-05-05
  • 第21届上海国际电影节启幕 设“一带一路电影周” 2019-04-11
  • 广西壮族自治区东兰县“七民一站一阵地工作法”维护群众权益 2019-04-08
  • 苗山脱贫影像志——父母在 不远行 2019-04-08
  • 竹编:缝隙里的乡愁文章中国国家地理网 2019-03-31
  • “几乎是时时在流血、天天有牺牲”,他们的故事你知道吗? 2019-03-31
  • 当前位置:浙江十一选五开奖直播 >  域名 >  正文 > 八个奇怪心理不解之谜

    浙江十一选五开奖直播 www.wmdzr.com   交易 任务 SEO服务 站长团购 联盟

    浙江十二选五开奖号码:如何在jenkins的maven项目中,用mvn命令行指定findbugs的黑名单规则文件


    一:问题背景

    最近在研究jenkins的过程中,针对maven项目,打算添加findbugs进行静态检查,但我不太想在项目的pom中进行修改,最好可以只修改jenkins的job配置,即配置外部化。

    ?

    我发现:在jenkins安装了findbugs插件后,只需要按照如下配置:

    1.配置maven的goal

    2.配置构建后发布Findbugs分析结果

    ?

    保存后,点击立即构建,即可正常生成报告,如下:

    3.问题出现

    因为我也是看了网上的很多文章,很多都说需要在pom文件里的build和report中配置findbugs插件。

    但配置经过我这样的实测,证明并不需要如此。唯一需要做的就是:如上图所示,在maven的goal中添加findbugs:findbugs即可。

    但是,我们项目组有自己的要求,比如某些findbugs的错误不需要检查。那么,我要怎么样才能指定,哪些错误需要检查,哪些错误不需要检查呢?

    ?

    二:解决方案尝试

    1.普遍做法

    ?我首先用搜索引擎查找了几篇,没找到我想要的,网上的做法都是:

    在项目的pom中指定规则文件的位置:

    在pom文件的同级,放置excludeFilterFile(该文件中的规则不需要检查)

        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.1</version>
    
                    <configuration>
                        <excludeFilterFile>custom-findbugs-include.xml</excludeFilterFile>
                        <!--<threshold>High</threshold>-->
                        <!--<threshold>Low</threshold>-->
                        <effort>Default</effort>
                        <findbugsXmlOutput>true</findbugsXmlOutput>
                        <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                        <xmlOutput>true</xmlOutput>
                        <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
                    </configuration>
                </plugin>
            </plugins>
    
        </build>
    
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.1</version>
                    <configuration>
                        <xmlOutput>true</xmlOutput>
                        <!-- Optional directoryto put findbugs xdoc xml report -->
                        <!--<xmlOutputDirectory>target/site</xmlOutputDirectory>-->
                        <findbugsXmlOutput>true</findbugsXmlOutput>
                        <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                    </configuration>
                </plugin>
            </plugins>
        </reporting>

    ?

    经我试验,这样是可行的。但是不符合我的需求:我希望pom里面都是干干净净的,findbugs只配置在jenkins中,项目不需要进行任何配置

    ok。继续搜索解决方案吧。

    2.阅读插件官网的文档

    Maven的findbugs插件的官网地址:https://gleclaire.github.io/findbugs-maven-plugin/

    在这里面,查阅了findbugs:findbugs的文档,看看有哪些配置参数:

    (https://gleclaire.github.io/findbugs-maven-plugin/findbugs-mojo.html)

    此时,有了一点收获,在可选参数部分,看到如下参数,结合上面第一种解决方案的xml的配置,我几何可以认定,要找的就是这个参数:excludeFilterFile

    ?

    ok。那么我们应该就它配置到jenkins里面的maven goal中就可以了吧。(我的pom文件和下面的custom-findbugs-include.xml同级,因此不需要指定路径)

    ?

    然而,当我兴冲冲打开findbugs的报告,发现各种bug类型和之前相比,没有变化。

    期间百思不得其解,不明白为什么在pom中指定就可以,在这里指定就不行。

    试了很多方法,最后我觉得:或许是这个配置压根没生效。

    ?

    3.验证猜想

    生没生效,这个只能通过maven的debug日志来看了。于是我像上面的图那样,打开了debug日志。

    -X -e

    这一次,在debug日志的输出中,下图所示的位置,是空的(截图我打了码,因为我找不到之前的日志了。)

    于是知道了问题的原因,果然是配置没生效。

    为什么不生效呢,应该是我的配置方式不对。

    接下来,我翻遍了baidu、google的前几页的结果,依然没有收获。查到的几乎都是传统方案,也就是在pom中指定。

    ?

    4.问题解决

    这期间,查搜索引擎无果,于是又上qq,加了两个群,提了问题??墒?,没人回答。

    这期间,我也顺便把这个maven插件的源码down了下来。导入到idea中,进行全局搜索:

    ?

    终于,让我发现如下代码:

        @Parameter( property="findbugs.excludeFilterFile" )
        String excludeFilterFile

    对java熟悉的人,应该很容易猜测:

    这是个配置项,而key不是我之前猜测的excludeFilterFile,而是findbugs.excludeFilterFile

    然后就简单了,我很愉快地在jenkins中修改了配置:

    ?

    终于,问题得到了解决。

    ?

    5.悬而未决的问题

    这个excludeFilterFile类似于黑名单,那么白名单行不行呢,我按照源码:

    @Parameter( property="findbugs.includeFilterFile" ) String includeFilterFile

    将jenkins配置改成

    ?

    并没有效果。这一点,打算后边再查。(当然,对我们组来说,黑名单,已经够了)

    ?

    三、踩坑感言

    其实这个问题,很奇怪,翻遍了搜索引擎都没结果,难道大家都没这个需求吗,不管怎么说,希望能帮助到有需要的人。

    抽丝剥茧的过程,其实很快乐。

    另外附上我随便写的custom-findbugs-include.xml文件(仅供测试用,规则是随便写的):

    <FindBugsFilter>
        <Match>
            <Bug pattern="DLS_DEAD_LOCAL_STORE"/>
        </Match>
    
        <Match>
            <Bug pattern="DM_BOXED_PRIMITIVE_FOR_PARSING"/>
        </Match>
    
        <Match>
            <Bug pattern="EI_EXPOSE_REP"/>
        </Match>
    
        <Match>
            <Bug pattern="EI_EXPOSE_REP2"/>
        </Match>
    
        <Match>
            <Bug pattern="ME_ENUM_FIELD_SETTER"/>
        </Match>
    </FindBugsFilter>

    ?

    规则列表:

    //findbugs.sourceforge.net/bugDescriptions.html#BSHIFT_WRONG_ADD_PRIORITY

    当前文章://www.wmdzr.com/news/2018121914334/index.html

    发布时间:2019-05-22 02:15:22

    看《芈月传》,你需要先知道的历史知识 我女儿喜欢了富二代该怎么办? 为孩子参加选秀拉票 好不好? 向死而生:从《道士下山》到天津爆炸,来谈谈生死 真女人不打折 大阅兵在即,带你走走看看世界各国阅兵式 金钱才是爱情的源泉 股市解套的几种方法--必看 AlphaGo:人机围棋大战最终谁会赢? 游完泳回到家还会溺死?

    千屈菜图片苗圃实拍-全网首发 12月份能栽植水腊吗? 15公分垂柳批发基地在哪里? 地径7公分黄金槐哪里有卖的? 藤宝贝月季苗价格哪家便宜? 14公分大叶女贞批发基地在哪里? 早熟禾草皮如何防治病虫害和修剪 细弱剪股颖草坪种植需要注意什么 哪里有卖酸枣种子的? 常见花卉品种有哪些? 护坡草籽最佳播种时间是什么时候? 湖南适合种植早熟禾吗? 大滨菊能在东北种植吗? 冬天可以播种柚子吗? 四月还能种植黑松吗? 5月可以播种广玉兰吗? 浙江哪里有卖复叶槭种子的? 5月可以播种蒲葵吗? 桧柏移植成活率是多少?

    编辑:公王北

      文章推荐

      分类排行榜

      专栏文章

      更多>

      服务推荐

      浙江十一选五开奖直播
      孩子的鲜血,能换回父母的觉醒吗? 扫一扫关注最新创业资讯
    • 更加紧密团结在以习近平同志为核心的党中央周围  2019-05-21
    • 马拉维“红旗飘飘”十年间,中国工程印上了当地纸币 2019-05-21
    • 庆祝人民日报创刊70周年系列访谈之颜世贵 2019-05-15
    • 国产新型雷达芯片华睿2号与组网中心同时亮相 2019-05-15
    • VRAR从热转凉 追风上市公司“跌落神坛”追风上市公司“跌落神坛”-手机行情 2019-05-06
    • The GNU General Public License v3.0 2019-05-05
    • 第21届上海国际电影节启幕 设“一带一路电影周” 2019-04-11
    • 广西壮族自治区东兰县“七民一站一阵地工作法”维护群众权益 2019-04-08
    • 苗山脱贫影像志——父母在 不远行 2019-04-08
    • 竹编:缝隙里的乡愁文章中国国家地理网 2019-03-31
    • “几乎是时时在流血、天天有牺牲”,他们的故事你知道吗? 2019-03-31