随笔

Sonar

昨天团队忽然收到一个 Sonar 扫描的代码报告,看扫出来的 Blocker 列表很扯,所以自己安装扫描确认下。Sonar 是一个代码质量管理工具,基于此有一系列的功能,扫描就是 Sonar Scanner 插件的能力。

Sonar

访问 https://www.sonarqube.org/downloads/ 下载 Sonar,解压后执行即可

./bin/macosx-universal-64/sonar start

默认会启动到 9000 端口,访问 http://localhost:9000 ,默认账号和密码都是 admin,登录后会要求修改密码。 进去后根据需要创建相应的项目,我这里选择手工方式,包括后面的分析也是手工,直接到目录执行。
截屏2022-01-25 17.52.08.png

按照流程一步步走,最后走到一个要求执行扫描命令的界面

截屏2022-01-25 17.54.12.png

Sonar Scanner

访问 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/, 下载对应平台的包,解压后将 bin 目录放到环境变量中,或者后面执行使用相对目录。

因为前面选择的手工方式,所以打开仓库目录,然后执行 Sonar 创建项目流程最后得到的命令。

sonar-scanner \
  -Dsonar.projectKey=test \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=1a3590d2eaf5dd234dba43570a55bd78697e25db

执行后会输出一系列信息,这些都不重要,最后会告诉你总共有了多少时间,这时候可以到 http://localhost:9000/projects 查看你的项目了。 截屏2022-01-25 17.59.22.png
截屏2022-01-25 18.01.36.png

比如查看 Bugs,会罗列所有扫描到的它觉得是 Bug 的地方

截屏2022-01-25 18.01.17.png

默认的规则非常扯,比如如上图第一个BUG,多传了一个参数,还有比如 Array.map 里面必须要 return,总之很多莫名其妙的 Blocker,还好的是规则可以定制,去规则里面选取自己想要的即可。

本文链接:https://note.lilonghe.net/post/sonar.html

-- EOF --