跳转至内容

SonarQube

来自 ArchWiki

SonarQube 是一个代码质量工具,旨在提高代码质量,并以 LGPL3 许可证发布。

安装

安装 sonarqube-binAUR 包。

SonarQube 默认使用 H2 数据库(不推荐)。或者需要使用数据库后端,支持以下数据库:

配置

用户配置文件位于 /etc/webapps/sonarqube/sonar.properties

有关更多配置示例,请参阅 SonarQube 文档

PostgreSQL

安装配置 PostgreSQL

SonarQube 似乎仅支持 TCP Socket

使用 TCP 套接字

连接到 PostgreSQL

[postgres]$ psql

在以 postgres 用户连接到服务器时创建新用户(系统会提示您输入新用户的密码)

postgres=# CREATE USER sonarqube WITH PASSWORD password;

创建 sonarqube 数据库,所有者为 sonarqube 用户

postgres=# CREATE DATABASE sonarqube OWNER sonarqube;
postgres=#GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;

PostgreSQL#配置 PostgreSQL 以便从远程主机访问

验证是否正常工作

$ psql --host=ip_address --dbname=sonarqube --username=sonarqube --password

通过更新 sonar.properties 配置 SonarQube

/etc/webapps/sonarqube/sonar.properties
sonar.jdbc.url=jdbc:postgresql:///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,Web 界面应监听 https://: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=https://:9000 -Dsonar.token=token
注意 项目密钥项目令牌的值可以在 Web 界面中创建

与 sonar-scanner 一起使用

有一个包 sonar-scannerAUR。用法如下:

$ /opt/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=project key -Dsonar.sources=. -Dsonar.host.url=https://:9000 -Dsonar.token=token
注意 项目密钥令牌的值可以在 Web 界面中创建

故障排除

您可以检查 单元状态日志

并且 Sonarqube 日志位于:

# /var/log/sonarqube/

如果 sonarqube 未激活,其中一个日志将包含错误。

参见