SonarQube 是用于改进代码的代码质量工具,以 LGPL3 许可发布。
安装
安装 sonarqube-binAUR 软件包。
SonarQube 默认使用 H2 数据库(不推荐)。 或需要使用数据库后端,支持以下数据库:
- MariaDB/MySQL
- PostgreSQL
- Oracle
- MSSQL
配置
用户配置文件位于 /etc/webapps/sonarqube/sonar.properties
中。
更多配置示例请参阅 SonarQube docs。
PostgreSQL
SonarQube 似乎只支持 TCP Socket 。
使用 TCP 套接字
连接 postgresql:
[postgres]$ psql
以 postgres
用户身份连接服务器时创建新用户(系统会提示输入新用户密码):
postgres=# CREATE USER sonarqube WITH PASSWORD password;
创建 Gitea 数据库,由 gitea
用户拥有:
postgres=# CREATE DATABASE sonarqube OWNER sonarqube; postgres=#GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
验证其工作状态:
$ psql --host=ip_address --dbname=sonarqube --username=sonarqube --password
通过更新 sonar.properties
配置 SonarQube:
/etc/webapps/sonarqube/sonar.properties
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube sonar.jdbc.username=sonarqube sonar.jdbc.password=password sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError sonar.web.javaAdditionalOpts=-server sonar.web.host=0.0.0.0 sonar.web.port=9000 sonar.log.level=INFO sonar.path.logs=logs
升级
升级 SonarQube 后,请按照以下步骤操作:
- 更新
sonar.properties
文件以匹配新版本。 - SonarQube 运行后,会出现一个页面提示您升级。详细说明请访问升级向导。
- 导航至 SonarQube 服务器的设置页面
https://ip:port/setup
并点击升级按钮。 - 升级过程完成后,将显示正常的登录页面。
用法
启动/启用 sonarqube.service
,网络接口应在 http://localhost:9000
上监听。
默认证书为 admin/admin
。
注意:
- 您可能需要配置一个反向代理进行远程访问,例如 nginx。
- 如果不想让 Sonarqube 监听所有接口,请在
/etc/webapps/sonarqube/sonar.properties
中将sonar.web.host
设置为 127.0.0.1 等。
与 maven 一起使用
$ mvn clean verify sonar:sonar -Dsonar.projectKey=project key -Dsonar.projectName=project -Dsonar.host.url=http://localhost:9000 -Dsonar.token=token
注意: project key、project 和 token 的值可在网络界面创建。
与 sonar-scanner 一起使用
有一个软件包 sonar-scannerAUR。用法如下
$ /opt/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=project key -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.token=token
注意: project key 和 token 的值可在网络界面创建。
问题解决
您可以查看单元状态或 journal。 还有 sonarqube 日志:
# /var/log/sonarqube/
如果 sonarqube 未激活,其中一个日志将包含错误信息。