天天看點

linux下sonarqube安裝過程記錄

目錄

          • 下載下傳sonarqube安裝包
          • java環境依賴
          • 再次嘗試啟動 sonarqube
          • 安裝sonarscanner
          • 統計單元測試覆寫率
          • 在127.0.0.1:9000中檢視代碼覆寫率 Coverage
下載下傳sonarqube安裝包

從官網 https://docs.sonarqube.org/latest/setup/get-started-2-minutes/ 下載下傳 安裝包,選擇From the zip file 安裝sonarqube,按照指引1,2,3步,嘗試啟動,一般情況下第一次是啟動不起來的,看一下啟動日志,通常是缺少java環境導緻,是以繼續安裝java。

linux下sonarqube安裝過程記錄
java環境依賴

繼續閱讀官網文檔https://docs.sonarqube.org/latest/requirements/requirements/ 找到環境依賴部分, 發現環境依賴sonarqube和scanner共同依賴的是 11版本,這裡我選擇了 OpenJDK 11,(資料庫預設是内置的H2,這裡不再另外配置)。

安裝openjdk11 并配置環境變量。https://jdk.java.net/java-se-ri/11 選擇對應版本下載下傳壓縮檔案,解壓到相應目錄。配置環境變量

sudo vim /etc/profile

在檔案最後添加如下内容

export JAVA_HOME=/openjdk-11+28_linux-x64_bin/jdk-11
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
           

指令行執行 java -version 輸入如下内容表示成功

openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
           
再次嘗試啟動 sonarqube

出現如下内容時啟動成功。

jvm 1    | 2021.03.22 17:24:20 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1    | 2021.03.22 17:24:20 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up
           

通路 127.0.0.1:9000 預設使用者名密碼admin admin 登陸成功,然後在Administration–>Security中 生成使用者token并記錄下來 配置到系統環境變量中

export SONAR_TOKEN=178f14927e9f32a140586a*********
           
linux下sonarqube安裝過程記錄
安裝sonarscanner

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 選擇對應版本下載下傳,這裡我選linux 64-bit壓縮檔案,然後在工程根目錄下添加檔案:sonar-project.properties(這一步可選),主要目的是有這一行内容

# must be unique in a given SonarQube instance
sonar.projectKey=my:project
           

由于我下載下傳的是壓縮檔案類型,是以按文檔 Running SonarScanner from the zip file 的内容嘗試執行sonar-scanner.

linux下sonarqube安裝過程記錄

先解壓檔案,然後确認配置檔案conf/sonar-scanner.properties 中的sonarqube server是指向了本地(這個預設就是本地,可以跳過)

然後配置軟連結到 /usr/local/bin 目錄下以使可以在任何目錄下執行sonar-scanner指令,等同于配置環境變量PATH,因為你執行 echo $PATH 會發現path路徑第一條就是 /usr/local/bin 是以把程式可執行檔案連結到 /usr/local/bin就等于實作了path配置。

ln -s 目标檔案 /usr/local/bin 
           

在指令執行 sonar-scanner -h 看到如下輸出表示sonar-scanner安裝成功

usage: sonar-scanner [options]

Options:
 -D,--define <arg>     Define property
 -h,--help             Display help information
 -v,--version          Display version information
 -X,--debug            Produce execution debug output
           

然後在項目目錄下執行 sonar-scanner -Dsonar.login=SONAR_TOKEN 檢視代碼分析結果,這裡的 SONAR_TOKEN 就是在第4步配置的環境變量

統計單元測試覆寫率

在項目根目錄下執行

go test --count=1 -coverprofile=coverage.out -json ./... > report.json
           

–count=1 : 通過使用一個不在“可緩存參數”集合中的參數來禁用緩存

sonar-scanner -Dsonar.projectKey=webgoclient  -Dsonar.inclusions=**/*.go -Dsonar.exclusions=**/*_test.go -Dsonar.go.coverage.reportPaths=coverage.out -Dsonar.go.tests.reportPaths=report.json -Dsonar.login=$SONAR_TOKEN
           

指令行帶參數 -Dsonar.projectKey=projectKey 的話就可以不用增加第5步的sonar-project.properties檔案,保證 projectKey唯一即可。檢視指令執行詳情可能會出現 WARN: Failed to find test file for package 這類的警報,這個暫時沒法解決,選擇忽略。

在127.0.0.1:9000中檢視代碼覆寫率 Coverage
linux下sonarqube安裝過程記錄

繼續閱讀