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 未激活,其中一個日誌將包含錯誤信息。