Spring Boot SpotBugs
什么是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相关推荐
- 后端开发实践:Spring Boot项目模板
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 作者 ...
- 后端开发实践:Spring Boot项目模板,拿去用吧!
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 作者:无知者 ...
- 后端开发实践——Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...
- 后端开发实践系列——Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...
- spring boot项目 中止运行 最常用的几种方法
spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...
- html+spring boot简单的ajax数据传输实现
本篇讲解在前后端不分离情况下的html+spring boot的项目数据传输实现 首先,后台我写了三个接口 package com.demo.ajax.controller;import com.de ...
- Spring Boot整合Spring Data JPA操作数据
一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...
- SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用
什么是JdbcTemplate 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架. 作为 SpringJDBC 框架的核心, JDB ...
- 使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目
使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目 一:创建项目,并添加相应依赖 新建Project,并指定Project为Spring Initializr ...
最新文章
- 【ASP.NET Core】给路由规则命名有何用处
- 分布式解决方案之分布式日志采集elk+kafka 环境的构建
- get url img
- FPGA学习笔记---3种乘法器的比较
- 大数据之-hadoop知识体系架构---大数据之hadoop工作笔记0001
- redis-3.0.0_rc5的RPM包制定
- java进入dos_java启动dos命令收集笔记一
- 没有搜索_杭州诠网科技解析搜索词和点击量正常却没有咨询对话的原因
- 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址...
- Fullpage:基础学习
- 计算机组成原理第三章ppt,计算机组成原理第三章幻灯片(白中英版).ppt
- 图像检索代码python_python-图像检索
- 计算机网络常用通讯方式,通信方式
- 例4-2 刽子手游戏(Hangman Judge,UVa 489)
- 华为OD机试(JAVA)真题22版
- 证券公司信息化4_最核心的IT系统是什么?柜台系统的两个主要功能?一个交易过程是怎样的?
- 【倒计时1天】PPP全球数字资产投资峰会-中国区北京首站之金融科技区块链支持可持续发展...
- 如何听清楚、说明白--《结构思考力》
- jdbc localhost mysql_JDBC连接MySQL
- 计算机usb接口充电效率差,比充电器还省电 实测主板关机充电神技