SonarQube 概述
是一種自動代碼審查工具,用於檢測代碼中的錯誤、漏洞和代碼異味。它可以與您現有的工作流程集成,以支持跨項目分支和拉取請求的持續代碼檢查。
在一個典型的開發過程中
開發人員在 IDE 中開發和合並代碼(最好使用SonarLint在編輯器中接收即時反饋)並將他們的代碼簽入到他們的 ALM。
組織的持續集成 (CI) 工具檢查、構建和運行單元測試,集成的 SonarQube 掃描器分析結果。
掃描器將結果發布到 SonarQube 服務器,該服務器通過 SonarQube 界面、電子郵件、IDE 內通知(通過 SonarLint)以及對拉取或合並請求的修飾(使用Developer Edition及更高版本時)向開發人員提供反饋。
安裝SonarQube
SonarQube 的三種進程
為 SonarQube 用戶界面提供服務的 Web 服務器-SonarQube
在您的構建或持續集成服務器上運行的一個或多個掃描器來分析項目-sonarscanner
存儲s掃描信息的數據庫-PostgreSQL
從 ZIP 文件安裝 SonarQube
下載鏈接:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.1.44547.zip
SonarQube 不能在root基於 Unix 的系統上運行,因此請為 SonarQube 創建一個專用用戶帳戶
$SONARQUBE-HOME(如下)指的是 SonarQube 發行版解壓后的目錄路徑。
設置對數據庫的訪問
編輯$SONARQUBE-HOME/conf/sonar.properties以配置數據庫設置,只需取消注釋並配置您需要的模板
例如使用:PostgreSQL數據庫,則進行如下修改
sonar.jdbc.username=sonarqube
sonar.jdbc.password=mypassword
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
添加 JDBC 驅動程序
配置 Elasticsearch 存儲路徑
編輯$SONARQUBE-HOME/conf/sonar.properties以配置以下設置:
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
用於啟動 SonarQube 的用戶必須對這些目錄具有讀寫權限。
啟動 Web 服務器
默認端口為“9000”,上下文路徑為“/”。
這些值可以在$SONARQUBE-HOME/conf/sonar.properties 中更改:
sonar.web.host=192.168.0.1
sonar.web.port=80
sonar.web.context=/sonarqube
執行以下腳本來啟動服務器:
在 Linux 上:bin/linux-x86-64/sonar.sh start
在 macOS 上:bin/macosx-universal-64/sonar.sh start
在 Windows 上:bin/windows-x86-64/StartSonar.bat
您現在可以在http://localhost:9000瀏覽 SonarQube (默認系統管理員憑據是admin/ admin)。
調整 Java 安裝
如果您的服務器上安裝了多個 Java 版本,您可能需要明確定義所使用的 Java 版本。
要更改 SonarQube 使用的 Java JVM,請編輯$SONARQUBE-HOME/conf/wrapper.conf並更新以下行:
wrapper.java.command=/path/to/my/jdk/bin/java