在工作中,我们常常会苦于冗余、繁杂的代码结构导致项目出现各种各样的坏味道。但是工作中可能会忙于各种事物,又不能及时的去审查部门成员的代码。这种情况下, sonarqube就能成为review的神器。它能通过scanner分析不同语言环境下代码存在的问题,并能够得到代码重复率,bug数量,代码行数等不同维度的指标。
下面对安装和使用的步骤进行简单介绍:
(图片来自:https://www.sonarqube.org/downloads/)
只有community版本是免费的,其余三个版本都是收费的,如下:
(图片来自:https://www.sonarqube.org/downloads/)
管理员运行:sonarqube-9.1.0.47736binwindows-x86-64StartSonar.bat
代码语言:javascript复制wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Error: Could not create the Java Virtual Machine.
jvm 1 | Error: A fatal exception has occurred. Program will exit.
jvm 1 | Unrecognized option: --add-exports=java.base/jdk.internal.ref=ALL-UNN
AMED
wrapper | JVM exited while loading the application.
wrapper | JVM Restarts disabled. Shutting down.
wrapper | <-- Wrapper Stopped
请按任意键继续. . .
下载jdk11 :
(图片来自:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html)
安裝完成后:
访问:localhost:9000
,默认密码:admin/admin
更新密码:
配置gitlab:
设置名称和过期时间
保存完状态如下:
代码语言:javascript复制You have the following errors in your configuration:
. Could not validate Gitlab url. Got an unexpected answer.
这里要确定的是Gitlab url对应的url是https还是http,是api/v3,还是api/v4,如下,如果访问 http://ip/api/v3 可能会出现如下内容,如果这里的gitlab api认证不通过的情况下,就无法进行下一步:
这种情况下就试试 api/v4
连接上以后如下内容:
输入access token,这个access token是在gitlab上面步骤中生成的gitlab的personal access token。正确输入后会显示如下页面:
对应授权的git账号上的项目。选择项目右侧的setup按钮即可。
代码语言:javascript复制Analyze your project with GitLab CI
Waiting for the first analysis to come in...
安装插件的时候要选择上面的声明阅读后,才能出现install的按钮。【如果不在部署的那台机器上安装, 会提示联系管理员安装】
(图片来自:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/)
设置环境变量:...sonar-scanner-cli-4.6.2.2472-windowssonar-scanner-4.6.2.2472-windowsbin
添加到系统变量的PATH中,添加完成后,cmd窗口下输入如下内容:
sonar-scanner
表示添加成功。
創建令牌,或者选择已有令牌如下:
使用喜欢的CI进行分析,如下,选择其他CI,创建一个令牌,并保存,因为项目配置的时候会用到,保存下令牌后,如下:
复制完,在开发环境的项目根目录下执行执行扫描,就像图示中的说明:“在你的电脑上执行SonarQube扫描”
扫描完成后,在cmd的输出内容中会提示,访问对应的url查看扫描结果。如下:
代码语言:javascript复制http://ip:9000/dashboard?id=[projectKey]
reference
https://blog.csdn.net/weixin_44225369/article/details/120163283
https://blog.csdn.net/weixin_40861707/article/details/82117232
https://www.jianshu.com/p/81a1904b7ad1
https://community.sonarsource.com/t/could-not-validate-gitlab-url/37137