Jenkins+maven+findbugs对java代码进行静态代码分析

一、POM.xml的修改

1、  在build里面配置:

 

代码如下:

                     <plugin>

                                   <groupId>org.codehaus.mojo</groupId>

                                   <artifactId>findbugs-maven-plugin</artifactId>

                                   <version>3.0.1</version>

                                   <configuration>

                                   <threshold>High</threshold>

                                   <effort>Default</effort>

                                   <findbugsXmlOutput>true</findbugsXmlOutput>

                                   <findbugsXmlWithMessages>true</findbugsXmlWithMessages>

                                   <xmlOutput>true</xmlOutput>

                                   <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>

                                   </configuration>

                     </plugin>

2、  在report里面配置:

 

代码如下:

<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>

二、JOB的配置

1、安装插件findbugs-plug-in

 

2、新建job

 

3、  配置svn

 

4、配置Invoke top-level Maven targets

5、添加PublishFindBugs analysis results,可以默认配置也可以修改相关配置。

 

三、结果的查看

1、构建job

2、查看结果

 

点击查看具体问题

 

 

 

运行多次后会生成趋势图

 

 

四、问题备注

问题1、使用findbugs:findbugs后不能检查到问题

indbugs虽然是一个静态分析工具,但是它分析的不是java源代码(后缀名为.java),而是class文件(编译后的文件)。在运行mvn findbugs:findbugs 时,不会自动编译项目,即没有class文件,所以findbugs没有运行。

有的技术博客说:“cleanfindbugs:findbugs install ,这种写法是错的,可以运行的,但是并不产生findbugs报告”,说法是对的,但是并没有说明原因。

原因:运行clean后,class文件都被删除了,所以不会运行findbugs,或者说findbugs没有可分析的class文件,自然就没有产生分析结果。

使用maven运行findbugs前一定先编译,一定要有class文件!

解决方法:

(1)mvnclean compile findbugs:findbugs

(2)mvnclean test findbugs:findbugs (test会调用compile生命周期)

如下图:

2、配置了findbugs后不能生成报告

       编译并执行findbugs命令时发现20个问题

 

但是Jenkins获取到0个错误

 

解决方法:

       注释reporting里面的<xmlOutputDirectory>。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java是一种高级编程语言,应用广泛,可以用于开发各种类型的程序。JUnit5是Java开发中非常流行的测试框架,可以对代码单元进行测试,确保程序的正确性。MavenJava开发者常用的构建工具,帮助开发者管理项目依赖、构建和管理项目。 Jenkins是一个持续集成工具,可以帮助开发者自动化地构建、测试和部署代码,并且支持多种编程语言。Selenium是一个广泛使用的自动化测试工具,可以模拟用户行为,测试Web应用程序并进行UI测试。通常与Java和JUnit5一起使用,可以大大简化测试过程,提高测试效率和可靠性。综上所述,Java、JUnit5、MavenJenkins和Selenium是Java开发者常用的一些重要工具,它们结合使用可以提高开发效率和代码质量,同时也有助于保障Web应用程序的可靠性和稳定性。 ### 回答2: Java是一种计算机编程语言,广泛用于开发企业级应用程序和移动应用程序。它是一种跨平台语言,可以在各种操作系统上运行。其面向对象的语言特性使得开发人员可以更轻松地构建可维护、可扩展的应用。 JUnit 5是一个开源的Java测试框架,可用于编写单元测试,集成测试和功能测试。它提供了丰富的测试注解和断言,能够优化测试开发过程。JUnit 5支持Java 8及以上版本,并且具有更好的可扩展性和灵活性。 Maven是一个Java项目管理和构建工具,可以自动下载项目依赖库,并负责编译,测试,打包和发布应用程序。它可以管理多个项目和模块,并且具有统一的目录结构和构建流程,提高了项目的可维护性和开发效率。 Jenkins是一个自动化构建和持续集成工具,可以监控版本控制系统中的代码变化,自动触发构建和测试,并且能够将构建结果进行分析和报告。Jenkins支持插件扩展,可以轻松地与其他工具集成,提高了持续集成的灵活性和可靠性。 Selenium是一个自动化Web应用测试工具,可以模拟用户交互,进行功能测试,回归测试和性能测试。它支持多种编程语言,包括Java和JUnit 5,并且能够在不同的浏览器和操作系统上运行,是开发Web应用的重要工具。 ### 回答3: Java是一种广泛使用的编程语言,它具有面向对象的特点,可以在不同的平台上运行。Junit5是Java中使用的测试框架,可以用来编写测试用例、测试断言和执行测试。MavenJava的一个构建工具,可以管理项目中的依赖项、编译、测试、打包和部署等过程。Jenkins是一个流行的持续集成工具,可以对Java项目进行持续集成和自动化测试。Selenium是一种自动化测试工具,可以用来模拟浏览器行为,自动化测试Web应用程序。 在Java的开发过程中,常常需要进行测试,以保证程序的质量和正确性。Junit5是Java中使用的一个成熟的测试框架,它可以用来编写测试用例、测试断言和执行测试等操作。Maven可以管理项目中的依赖项、编译、测试、打包和部署等过程,可以大大简化项目的构建和管理。Jenkins可以集成Junit5和Selenium等测试工具,对Java项目进行持续集成和自动化测试,大大提高开发效率和代码质量。 Selenium是一种自动化测试工具,可以用来模拟浏览器行为,对Web应用程序进行自动化测试。它可以模拟用户在浏览器中的操作,比如单击、输入、滚动、切换窗口等,通过代码自动化地执行这些操作,并对应用程序的响应结果进行断言和验证。因此,Selenium非常适合用于测试Web应用程序。结合Junit5和Jenkins等工具,可以实现自动化的测试流程,提高测试效率和准确度。 综上所述,Java、Junit5、MavenJenkins和Selenium是Java开发中常用的一些工具和框架,它们可以提高开发效率,保证程序的质量和稳定性,是Java开发者必备的知识点和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值