spring boot使用sonarqube来检查技术债务

作为代码质量检查的流行工具,比如Sonarqube能够检查代码的“七宗罪”,跟代码结合起来能够更好地提高代码的质量,让我们来看一下,刚刚写的Springboot2的HelloWorld的代码有什么“罪”。

Sonarqube

Sonarqube可以使用docker版本快速搭建,可以参看一下Easypack整理的镜像,具体使用可以参看如下链接,这里不再赘述:

环境假定

本文使用到的sonarqube为本机32003可以访问到的服务。

扫描方式

可以使用sonar-scanner或者mvn sonar:sonar的方式对代码进行扫描,因为这里不是sonarqube的展开,只是解释如何与之进行集合,这篇文章使用更为便利的方式即mvn sonar:sonar。

使用命令:mvn sonar:sonar -Dsonar.host.url=http://localhost:32003
如果使用缺省的9000端口,-D可以不必使用,虽然这里都可以指定,为了避免初入者进坑太多,这里还是尽可能的一切从简。

结果确认

扫描结果确认

确认之后发现,有一个Bugs&Vulnerabilities。我们来确认一下相关详细信息:

然而,这是一个误报,详细可参看:

对应措施

因为此行是一个误报,所以直接在该行添加//NOSONAR即可除外。另外为了验证其效果,我们添加一行:String msg = “Unused Message variable”;

再执行&结果确认

使用命令:mvn sonar:sonar -Dsonar.host.url=http://localhost:32003

可以看到,Bugs已经没有了,但是因为增加的一行,出现了两个Code Smells的问题。

具体确认详细信息:

因为Sonar认为此行代码没有被使用到,所以是无用的语句应该删除。当然这里的分析,即使没有使用springboot的框架,只要是通过maven进行整合的方式都是可以的。

代码覆盖率

但是需要注意到,这里没有代码覆盖率,在下篇文章中将介绍如何在Spring boot的项目中通过Jacoco与之结合来引入代码覆盖率的确认。

小结

使用SonarQube可以很好的检查出代码的问题,但是在实际的项目中需要进行裁剪和定制,扫出来的不一定有问题,没有扫出来也不一定万事大吉,但是一定程度的代码规范和质量提高还是很有用处,实际在使用的时候应该根据具体情况进行实施。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Gradle进阶使用结合Sonarqube进行代码审查的方法

    作为代码质量检查的流行工具,比如Sonarqube能够检查代码的"七宗罪",跟代码结合起来能够更好地提高代码的质量,这篇文章将会介绍如何结合gradle和sonarqube对代码质量与测试覆盖率进行分析. Sonarqube Sonarqube可以使用docker版本快速搭建,可以参看一下Easypack整理的镜像,具体使用可以参看如下链接,这里不再赘述: https://hub.docker.com/r/liumiaocn/sonarqube/ 环境假定 本文使用到的sonarqub

  • JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 2.JSONObject对象使用 JSON-lib包是一个beans,collections,maps,java arrays

  • 详解JSONObject和JSONArray区别及基本用法

     一.JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的, 例如:   { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null  }  而JSONArray,顾名思义是由JSONObject构成的数组,用  [

  • java 将jsonarray 转化为对应键值的jsonobject方法

    有时候我们再操作数据的时候,很多数据是jsonarry 格式的 如: [{"name":"测试数据","id":1},{"name":"测试数据2","id":2}] 这样的格式很类型表格数据类型.但是我们要取id 为1的name 这样我们就要先变量以便了.如果需要多次操作这样的类型,显得很麻烦. 这里的数据我们可以看出id 是唯一的.那么我们可以想办法将其转为jsonobject 这样

  • 浅析Java中JSONObject和JSONArray使用

    废话不多说,先给大家贴代码,具体代码如下所示: import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.*; public class JavaTest { public static void main(String[] args){ JSONObject obj=new JSONObject(); obj.put("derek","23"); obj.put(&q

  • Sonar编译问题对应:File [...] can't be indexed twice.

    现象说明 maven的java项目,测试用例和main所在的源码文件均符合缺省写法和格式,但是在使用mvn clean sonar:sonar进行编译时提示can't be indexed twice错误. 相关版本 使用如下相关版本信息: 错误信息提示 ERROR: Caused by: File [...] can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets

  • java json字符串转JSONObject和JSONArray以及取值的实例

    java json字符串转JSONObject和JSONArray以及取值的实例 实现代码: import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonTest { public static void main(String[] args) { String joStr = "{name:\"张三\",age:\"20\"}"; //将json字符

  • Java中JSONObject与JSONArray的使用区别详解

    最近公司开发的几个项目中,后台Action向前端传递数据都是Json格式,于是对JSONObject.JSONArray简单的研究了一下,废话不多说,想使用JSONObject.JSONArray,策则在项目中必须要有commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar  ezmorph.jar json-lib-2.2.2-jdk15.jar 这些Jar包. 1.JSONObject

  • JSON字符串转换JSONObject和JSONArray的方法

    一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 二.具体转化过程 //JSONObject String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}"; String value1 = null; t

  • sonar-scanner连接sonarquebe7的sonar.java.binaries问题的解决方案

    Sonar-Scanner连接新版SonarQube7提示org.sonar.squidbridge.api.AnalysisException,暂定将sonar-java-plugin降到4.10恢复正常使用. 现象描述 以一下版本Sonar-Scanner连接SonarQube进行Maven项目的代码检测,没有任何问题. Sonar-Scanner命令 使用命令sonar-scanner,使用-D传入以下参数 问题描述 在仅仅升级了SonarQube到7.0之后,使用同样的sonar-sca

随机推荐