什么是SpotBugs

SpotBugs是一个开源的Java缺陷检测工具,它通过分析字节码文件来发现潜在的缺陷。它可以检测出Null指针引用、数组越界、未使用的变量、未关闭的资源等问题,并且可以在编译时、运行时、甚至是离线时进行检测。

import dependency

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>java-backend</artifactId><version>0.0.1-SNAPSHOT</version><name>Java Backend</name><dependencies>...<dependency><groupId>com.github.spotbugs</groupId><artifactId>spotbugs-maven-plugin</artifactId><version>4.7.2.0</version></dependency></dependencies><build><finalName>java-backend</finalName><plugins><plugin><groupId>com.github.spotbugs</groupId><artifactId>spotbugs-maven-plugin</artifactId><version>4.7.2.0</version><dependencies><dependency><groupId>com.github.spotbugs</groupId><artifactId>spotbugs</artifactId><version>4.7.2</version></dependency></dependencies><configuration><excludeFilterFile>conf/spotbugsFilter.xml</excludeFilterFile></configuration><executions><execution><id>spotbugs</id><phase>verify</phase><goals><goal>check</goal></goals></execution></executions></plugin></plugins></build>
</project>

maven spotbugs:spotbugs

C:\Users\test\java_backend> mvn spotbugs:spotbugs
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.test:java-backend >-------------------
[INFO] Java Backend 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- spotbugs-maven-plugin:4.7.2.0:spotbugs (default-cli) @ java-backend ---
[INFO] Fork Value is true
[INFO] Done SpotBugs Analysis....
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.718 s
[INFO] Finished at: 2023-05-12T08:37:08+08:00
[INFO] ------------------------------------------------------------------------

In the target folder, spotbugsXml.xml will be created.

maven spotbugs:check

C:\Users\test\java_backend> mvn spotbugs:check
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.test:java-backend >-------------------
[INFO] Building Java Backend 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spotbugs-maven-plugin:4.7.2.0:check (default-cli) > :spotbugs @ java-backend >>>
[INFO]
[INFO] --- spotbugs-maven-plugin:4.7.2.0:spotbugs (spotbugs) @ java-backend ---
[INFO] Fork Value is true
[INFO] Done SpotBugs Analysis....
...
To see bug detail using the Spotbugs GUI, use the following command "mvn spotbugs:gui"
[ERROR] Failed to execute goal com.github.spotbugs:spotbugs-maven-plugin:4.7.2.0:check (default-cli) on project java-backend: failed with 119 bugs and 0 errors  -> [Help 1]

"mvn spotbugs:check" will fail when an warning/error is detected.

maven spotbugs:gui

From GUI, bugs details can be clearly viewed.

exclude warning/error

exclude warning/error by config filter file spotbugsFiler.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter><Match><Bug pattern="DM_DEFAULT_ENCODING" /></Match><Match><Bug pattern="EI_EXPOSE_REP" /></Match><Match><Bug pattern="EI_EXPOSE_REP2" /></Match>
</FindBugsFilter>

Path of spotbugsFilter.xml

execute commands in order:

1) mvn spotbugs:spotbugs

2) mvn spotbugs:check

C:\Users\test\java_backend> mvn spotbugs:check
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.test:java-backend >-------------------
[INFO] Building Java Backend 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spotbugs-maven-plugin:4.7.2.0:check (default-cli) > :spotbugs @ java-backend >>>
[INFO]
[INFO] --- spotbugs-maven-plugin:4.7.2.0:spotbugs (spotbugs) @ java-backend ---
[INFO] Fork Value is true
[INFO] Done SpotBugs Analysis....
[INFO]
[INFO] <<< spotbugs-maven-plugin:4.7.2.0:check (default-cli) < :spotbugs @ java-backend <<<
[INFO]
[INFO]
[INFO] --- spotbugs-maven-plugin:4.7.2.0:check (default-cli) @ java-backend ---
[INFO] BugInstance size is 0
[INFO] Error size is 0
[INFO] No errors/warnings found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.881 s
[INFO] Finished at: 2023-05-12T09:03:03+08:00
[INFO] ------------------------------------------------------------------------

Spring Boot SpotBugs相关推荐

  1. 后端开发实践:Spring Boot项目模板

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 作者 ...

  2. 后端开发实践:Spring Boot项目模板,拿去用吧!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 作者:无知者 ...

  3. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  4. 后端开发实践系列——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  5. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  6. html+spring boot简单的ajax数据传输实现

    本篇讲解在前后端不分离情况下的html+spring boot的项目数据传输实现 首先,后台我写了三个接口 package com.demo.ajax.controller;import com.de ...

  7. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

  8. SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用

    什么是JdbcTemplate 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架. 作为 SpringJDBC 框架的核心, JDB ...

  9. 使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目

    使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目 一:创建项目,并添加相应依赖 新建Project,并指定Project为Spring Initializr ...

最新文章

  1. 【ASP.NET Core】给路由规则命名有何用处
  2. 分布式解决方案之分布式日志采集elk+kafka 环境的构建
  3. get url img
  4. FPGA学习笔记---3种乘法器的比较
  5. 大数据之-hadoop知识体系架构---大数据之hadoop工作笔记0001
  6. redis-3.0.0_rc5的RPM包制定
  7. java进入dos_java启动dos命令收集笔记一
  8. 没有搜索_杭州诠网科技解析搜索词和点击量正常却没有咨询对话的原因
  9. 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址...
  10. Fullpage:基础学习
  11. 计算机组成原理第三章ppt,计算机组成原理第三章幻灯片(白中英版).ppt
  12. 图像检索代码python_python-图像检索
  13. 计算机网络常用通讯方式,通信方式
  14. 例4-2 刽子手游戏(Hangman Judge,UVa 489)
  15. 华为OD机试(JAVA)真题22版
  16. 证券公司信息化4_最核心的IT系统是什么?柜台系统的两个主要功能?一个交易过程是怎样的?
  17. 【倒计时1天】PPP全球数字资产投资峰会-中国区北京首站之金融科技区块链支持可持续发展...
  18. 如何听清楚、说明白--《结构思考力》
  19. jdbc localhost mysql_JDBC连接MySQL
  20. 计算机usb接口充电效率差,比充电器还省电 实测主板关机充电神技

热门文章

  1. 微服务工程消费dubbo服务的配置
  2. 小程序ios端的小bug,小程序如何实现自适应布局
  3. 36进制转换成十进制问题
  4. 6 个月从 0 学会英语 - 视频学习笔记
  5. iOS刷新框架MJRefresh使用
  6. 华创期货:教您识别合法和非法期货区别曝光骗局远离亏损
  7. Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)
  8. 手机充电一会就满了,用一会就没了,就自己关机
  9. 为什么LSTM可以缓解梯度消失?
  10. 广联达常用快捷命令合集