昨天团队忽然收到一个 Sonar 扫描的代码报告,看扫出来的 Blocker 列表很扯,所以自己安装扫描确认下。Sonar 是一个代码质量管理工具,基于此有一系列的功能,扫描就是 Sonar Scanner 插件的能力。
Sonar
访问 https://www.sonarqube.org/downloads/ 下载 Sonar,解压后执行即可
./bin/macosx-universal-64/sonar start
默认会启动到 9000 端口,访问 http://localhost:9000 ,默认账号和密码都是 admin,登录后会要求修改密码。
进去后根据需要创建相应的项目,我这里选择手工方式,包括后面的分析也是手工,直接到目录执行。
按照流程一步步走,最后走到一个要求执行扫描命令的界面
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 查看你的项目了。
比如查看 Bugs,会罗列所有扫描到的它觉得是 Bug 的地方
默认的规则非常扯,比如如上图第一个BUG,多传了一个参数,还有比如 Array.map 里面必须要 return,总之很多莫名其妙的 Blocker,还好的是规则可以定制,去规则里面选取自己想要的即可。