当前位置: 首页 > 编程笔记 >

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

郭易安
2023-03-14
本文向大家介绍spring boot使用sonarqube来检查技术债务,包括了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可以不必使用,虽然这里都可以指定,为了避免初入者进坑太多,这里还是尽可能的一切从简。

结果确认

扫描结果确认

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

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

  • 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的问题。

具体确认详细信息:

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

代码覆盖率

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

小结

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

总结

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

 类似资料:
  • 然而,整体质量门应该以某种方式(数学上?)遵循一定的比例。 问:鉴于上述放宽,如何计算最合适的技术债务门槛? 从一篇旧文章(2009年,因此很可能不再适用)中扣除了以下公式:

  • 我正在为CI使用Jenkins,并为Jenkins添加了声纳插件。声纳扫描后,技术债务显示为零。 但事实上,它不是零之前使用的是最新版本的声纳,它显示了技术债务,但降级后,它没有显示。(显示重复代码、代码行和复杂性) 以下是使用的声纳版本 降级前,使用以下版本(工作正常) 降级后(未显示技术债务) 如何解决这个问题? 谢啦 甘内什

  • 在Sonarqube5.5之前的版本中,为了考虑复杂性,有可能改变计算技术债务的方式,但在5.5之后,我看不出如何改变它。是否删除了此配置? 总之,在复杂的代码中,修复的成本比在简单的代码中要高得多。这里有一篇文章,您可以看到并比较两个相似的项目,它们的技术债务基于规模相似,但基于复杂性的技术债务却完全不同。此外,复盖面对这一措施也有影响;我认为,当你有足够的测试和覆盖,确保你没有破坏任何东西时,

  • 2023年3月13日 邮箱简历投递 2023年3月20日 电话了解情况 1. 核对个人信息与报名岗位。 2. 说明公司基本情况。 3. 是否有色盲色弱 4. 是否接受出差 5. 朝九晚六 中午一个半 双休 能接受吗?(我太能接受了 亲) 6. 是否有挂科情况 7. 模电和数电成绩如何 8. 身高体重情况 9. 是否有其他offer 10. 期望薪资情况 11. 在校成绩排名 12. 工作内容是否有

  • 我想知道以下声明媒体查询的方法是否有任何主要的优点/缺点。 似乎有3种主要方式--这有原因吗?有什么区别? 范瑟丝 范瑟丝 提前致谢

  • 状态机技术选型? Spring StateMachine 还是 阿里的Cola StateMachine? 需求:做一个审评流程,涉及到不同层级负责人审批,由于业务不是很复杂,所以决定采用状态机