评论

收藏

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

编程语言 编程语言 发布于:2021-10-06 13:03 | 阅读数:383 | 评论:0

今天小编就为大家分享一篇关于spring boot使用sonarqube来检查技术债务,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
作为代码质量检查的流行工具,比如sonarqube能够检查代码的“七宗罪”,跟代码结合起来能够更好地提高代码的质量,让我们来看一下,刚刚写的springboot2的helloworld的代码有什么“罪”。
sonarqube
sonarqube可以使用docker版本快速搭建,可以参看一下easypack整理的镜像,具体使用可以参看如下链接,这里不再赘述:

  • https://hub.docker.com/r/liumiaocn/sonarqube/
环境假定
本文使用到的sonarqube为本机32003可以访问到的服务。
扫描方式
可以使用sonar-scanner或者mvn sonar:sonar的方式对代码进行扫描,因为这里不是sonarqube的展开,只是解释如何与之进行集合,这篇文章使用更为便利的方式即mvn sonar:sonar。
使用命令:mvn sonar:sonar -dsonar.host.url=http://localhost:32003
如果使用缺省的9000端口,-d可以不必使用,虽然这里都可以指定,为了避免初入者进坑太多,这里还是尽可能的一切从简。
结果确认
DSC0000.png

扫描结果确认
DSC0001.jpg

确认之后发现,有一个bugs&vulnerabilities。我们来确认一下相关详细信息:
DSC0002.jpg

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

  • https://stackoverflow.com/questions/37071032/sonarqube-close-this-configurableapplicationcontext-in-spring-boot-project
对应措施
因为此行是一个误报,所以直接在该行添加//nosonar即可除外。另外为了验证其效果,我们添加一行:string msg = “unused message variable”;
再执行&结果确认
使用命令:mvn sonar:sonar -dsonar.host.url=http://localhost:32003
可以看到,bugs已经没有了,但是因为增加的一行,出现了两个code smells的问题。
DSC0003.jpg

具体确认详细信息:
DSC0004.jpg

因为sonar认为此行代码没有被使用到,所以是无用的语句应该删除。当然这里的分析,即使没有使用springboot的框架,只要是通过maven进行整合的方式都是可以的。
代码覆盖率
但是需要注意到,这里没有代码覆盖率,在下篇文章中将介绍如何在spring boot的项目中通过jacoco与之结合来引入代码覆盖率的确认。
小结
使用sonarqube可以很好的检查出代码的问题,但是在实际的项目中需要进行裁剪和定制,扫出来的不一定有问题,没有扫出来也不一定万事大吉,但是一定程度的代码规范和质量提高还是很有用处,实际在使用的时候应该根据具体情况进行实施。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对CodeAE代码之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/liumiaocn/article/details/83550282

关注下面的标签,发现更多相似文章