Findbugs

检索性能缺陷及逻辑问题,Findbugs只能找出JAVA的逻辑问题,常见的问题类似空指针,忽略返回值等

PMD

检测类似开启未关闭,未用的变量等问题,一般不涉及逻辑,注重每个变量

checkstyle

检测代码格式,这里一般检查的就不是BUG,注重代码易读性,这个的有些规范过于死板,所以一般情况下可以选择自己配置检查内容,或者仅作为参考检查,甚至可以不使用

eslint

前端React的代码格式检查,前端目前没有找到什么比较好的检测工具,这个只能检查代码格式,很难查出代码BUG

本地生成检测结果测试

简单说Jenkins集成其实就是将你生成好的检查结果文件展示到网页而已,所以需要自行执行命令进行代码质量检查。

  1. 建立一个基于maven的springboot项目
  2. 修改POM文件,将build标签改造成如下(注意如果只使用Findbugs和PMD不需要这么复杂,只引用spring-boot-maven-plugin这个插件就够了,我引入)
    <build>
       <finalName>aaaa</finalName>
       <plugins>
               <plugin>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
               </plugin>
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-pmd-plugin</artifactId>
                   <version>3.12.0</version>
                   <!-- 这个configuration标签可以不要,这个是自定义PMD规则 -->
                   <configuration>
                       <rulesets>
                           <ruleset>/pmd-rule.xml</ruleset>
                       </rulesets>
                   </configuration>
               </plugin>
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-checkstyle-plugin</artifactId>
                   <version>3.1.0</version>
                   <executions>
                       <execution>
                           <!-- 绑定pmd:pmd到validate生命周期,在validate时会自动进行代码规范检查 -->
                           <id>validate</id>
                           <phase>validate</phase>
                           <configuration>
                               <!-- 这个configLocation标签可以不要,这个是自定义checkstyle规则 -->
                               <configLocation>/checkstyle.xml</configLocation>
                               <encoding>UTF-8</encoding>
                               <consoleOutput>true</consoleOutput>
                               <failsOnError>true</failsOnError>
                               <includeTestSourceDirectory>false</includeTestSourceDirectory>
                           </configuration>
                           <goals>
                               <goal>check</goal>
                           </goals>
                       </execution>
                   </executions>
               </plugin>
           </plugins>
    </build>
  3. 在项目根目录执行mvn findbugs:findbugs ,生成findbugs结果文件findbugsXml.xml
  4. 在项目根目录执行mvn pmd:pmd ,生成PMD结果文件pmd.xml
  5. 在项目根目录执行mvn checkstyle:checkstyle ,生成checkstyle结果文件checkstyle-result.xml
  6. 生成一个基础的React项目,项目根目录执行命令eslint --ext .js src -c .eslintrc.js -f checkstyle > eslint.xml生成结果文件eslint.xml
  7. 以上4个文件就是之后Jenkins需要的4个文件,都正常生成后就可以进行Jenkins集成了

Jenkins集成(JAVA)

  1. 部署一个基础的Jenkins自动部署项目,配置好maven和jdk信息,基础配置这里不写了
  2. 在项目的配置中找到Build这项,添加如下信息
  3. 找到Post-build Actions项,添加分析功能,这里空白是因为我直接生成的默认文件名,如果生成的不是默认文件名,在这些空白处填上你的名称就行

Jenkins集成(React)

  1. 部署一个基础的Jenkins自动部署项目,配置好maven和jdk信息,基础配置这里不写了
  2. 在执行yarn build后,执行eslint --ext .js src -c .eslintrc.js -f checkstyle > eslint.xml
  3. 添加分析配置,这里名字不是默认名字,所以写了下名字

IDEA中附加代码检查

这里推荐直接使用QAPlug插件,里面包含了Findbugs,PMD和CheckStyle,可以再附加个Alibaba Java Coding Guidelines插件实时检查代码格式

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐