使用 Sonar 检测代码质量
经历了一段时间的加班赶项目进度之后,今天终于闲下来了。忽然不知道干啥。于是,想着做点什么吧。突然想起了码云上面有个代码分析的功能,用的是 Sonar
于是想来玩玩这个。
打开浏览器,搜索sonarqube,进入官网,找到download按钮,下载安装包。浏览器下载慢的话, 可以复制下载链接 到迅雷里边下载。
下载之后,解压到任意目录。
解压后,如果是 windows 64位系统,进入windows-x86-64 目录,双击InstallNTService.bat,成功之后,双击StartSonar.bat 启动。
然后打开浏览器输入:http://192.168.2.100:9000/。可以看到一个界面。
sonar需要java环境的支持,分析数据会保存到保存到数据库。支持mysql,oracle,PostgreSQL,SQLServer
所以,这里需要默认你已经配置好了Java开发环境,已经安装了mysql数据库。
打开 sonar 解压目录的,conf,可以看到sonar.properties 文件中有如下配置:
上面红色加粗的东西本来是注释掉的,现在我给解开了。并增加了配置。这里的配置,说明的数据库信息,和连接的用户信息。
但是,咱们还没有这个用户,和这个数据库,所以需要执行如下命令来创建用户和数据库。:
数据库弄好之后,同时需要复制一个数据库驱动放到安装目录的:extensionsjdbc-drivermysql 下面。比如我用的是:mysql-connector-java-6.0.3.jar
到这里工作完成一半了。如果要想运行分析,则还需要一个东西。根据官方的文档,有如下内容:
也就是,我们需要下载一个SonarQube Scanner 才能运行代码分析。上面提供了6种,我选择了第一种。下载点这里
1.下载之后,解压到随意目录。假设目录是:D:developsonarqube-6.2sonar-scanner-2.8
2. 将目录D:developsonarqube-6.2sonar-scanner-2.8bin 配置到环境变了path中。
3.打开D:developsonarqube-6.2sonar-scanner-2.8conf 下的sonar-scanner.properties 文件,进行如下配置:
假设上的步骤你都配合好了。并且,启动了SonarQube。
假设现在有项目myproject,进入到项目的根目录创建一个文件sonar-project.properties,文件内容如下:
进入CMD.进入到项目的目录,就是刚才包含sonar-project.properties文件的这个目录。
执行命令:sonar-scanner
然后就是等待执行结果,大概几分钟吧。成功之后,进入:http://192.168.2.100:9000/
可以看到项目分析的结果,当然了,可能需要等待一会儿才能看到,因为有处理时间,我在运行上面的命令之后,看到cmd窗口成功完成了。马上到这个页面看,发现还没有。
大概一分钟之后刷新,发现,有了!如下所示:
点这个进去看就知道了。里边有很详细的结果汇报。有问题的代码片段展示,并提示如何修改。还是挺好的。
错误记录:
当时分析了三四个项目,其中有一个失败了,其他都成功了,观看日志发现描述是这样的:
INFO: Analysis report generated in 9263ms, dir size=11 MB
INFO: Analysis reports compressed in 5699ms, zip size=4 MB
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 6:28.455s
INFO: Final Memory: 29M/1274M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Failed to upload report - 500: An error has occurred. Please contact your administrator
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
结果是“EXECUTION FAILURE” 失败了。
失败原因是啥呢? 注意我加粗的文字。 分析的报告大小是 11MB,压缩之后4MB。还是很大的。上传失败的原因是 MYSQL配置问题。
在mysql的终端窗口输入如下命令:
可以看到max_allowed_packet的大小,用这个值 max_allowed_packet / 1024 /1024 = ? M
所以把这个设置大点就好了。在mysql的命令行窗口执行如下命令:
最近更新影视资讯
- 韵府群玉
- 老年临终关怀护理集锦9篇
- 如何评价剧场版动画《和谐(harmony/ハーモニー)》原作:伊藤计划 ?
- 智人战胜尼人的决定性因素 是神灵崇拜与艺术品 在3万7千年前智人击败了远比自己强
- 沈阳参考消息(2017年1月11日)
- 密集架区密集架书库图书馆负一楼期刊阅览区中外文期刊图书馆一楼图书借阅区(A-H
- 费维光:脾胃病17方
- 土耳其身为伊斯兰国家,为什么允许“风俗产业”合法化?
- 高中教师教学反思
- 三观尽毁!90后公务员出轨50岁女上司,聊天言语暧昧,妻子怒举报
- 22应用心理学考研347 首师360有调剂院校吗?
- 铃木凉美女士,你仍期待同时收获怜爱与尊敬吗?
- 团建别墅 | 确认过眼神,是能疯一起的人!Boss,今年年会我们泡私家温
- 《归来》观后感
- 翻译伦理的重要性和译者荣辱观建设研究
- 高二语文期末考试测试题及答案
- 国医大师名单!在北京看中医该找谁,这下全知道!
- 这些年爱过的同人文(BG)
- 荷兰深陷风俗业?日本都要甘拜下风,为何能稳坐世界顶尖位置!
- 戴安娜25年前私密录像首次解密:自述性生活,全英国都被炸懵逼了
- 原创上官婉儿为什么必须死,她做的这件事太无耻,李隆基忍无可忍
- 「医药速读社」Paxlovid临床失败 礼来斥巨资引进Kv1.3抑制剂
- 她是韩国性感女神,靠出演“三级片”走红,今41岁韵味不减当年!
- 电影市场有望点燃 好莱坞大片排队上映
- 评荐《传染病(Contagion)》