在服務器搭建sonarqube后,本地的windows個人電腦如何使用sonar-scanner?
在服務器搭建sonarqube后,每個人都可以在本地使用sonar-scanner掃描代碼。
sonarqube與sonar-scanner的關系
一、本地電腦安裝jdk
至少安裝1.8版本以上的jdk,安裝后配置后環境變量。
二、下載sonar-scanner
-
官網下載:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
-
同步地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
三、將sonar-scanner添加到環境變量
下載后解壓
方法1:直接將bin目錄添加到path環境變量中
如:E:\sonar-scanner-cli-4.6.2.2472-windows\sonar-scanner-4.6.2.2472-windows\bin
方法2:先將一個SONAR_SCANNER_HOME,再添加到path環境變量中
注意:SONAR_SCANNER_HOME是填寫到sonar-scanner的根目錄,E:\sonar-scanner-cli-4.6.2.2472-windows
然后path添加:%SONAR_SCANNER_HOME%\bin
之后,打開cmd,輸入:sonar-scanner -version,如下圖所示,代表環境變量配置正確
如果出現:不是內部命令、外部命令的提示,代表環境變量沒有配置正確
四、修改sonar-scanner配置文件
進入conf:E:\sonar-scanner-cli-4.6.2.2472-windows\sonar-scanner-4.6.2.2472-windows\conf,找到sonar-scanner.properties文件
配置sonarqube服務器地址,數據庫地址,編碼格式
sonar.host.url=http://192.168.2.122:9000/code_scan
#----- Default source code encoding
#配置編碼格式
sonar.sourceEncoding=UTF-8
#數據庫配置
sonar.jdbc.url=jdbc:postgresql://192.168.2.122:5432/code_scan
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=postgres
sonar.jdbc.password=123456
五、將項目拉到本地並添加配置文件
假設需要掃描的項目是:G:\sonar-scanning-examples-master\sonarqube-scanner\src,掃描其中的python目錄
添加一個sonar-project.properties文件
可以是txt文件直接把后綴改為.properties
sonar-project.properties文件是放到項目目錄里
配置文件的說明
-
sonarprojectKey=在sonarQube上的實例鍵名(必須是唯一的,不可重復相同)
-
sonar.projectName=在sonarQube上的項目名稱
-
sonar.projectVersion=1.0(項目版本號,可以不指定)
-
sonar.sources=.(java源代碼目錄指定,可以知道掃描目錄,填寫sonar-project.properties文件所在目錄的相對路徑)
如下圖,sonar-project.properties文件在G:\sonar-scanning-examples-master\sonarqube-scanner\src
想要掃描python目錄,就直接填寫:sonar.sources=python -
sonarsourceEncoding=UTF-8(編碼格式指定)
-
sonar.language=java(指明只掃描ava語言)
-
sonarjava.binaries=target/classes(class文件的目錄)
六、獲取掃描命令
可以從sonarqube中直接獲取掃描命令,進入項目
Token: 8dcba09f6faf72b81258e58ead4d1d2ca31628d0
sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://192.168.2.122:9000/code_scan" -D"sonar.login=8dcba09f6faf72b81258e58ead4d1d2ca31628d0"
七、進行掃描
在sonar-project.properties文件所在目錄,進入cmd
執行:sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://192.168.2.122:9000/code_scan" -D"sonar.login=8dcba09f6faf72b81258e58ead4d1d2ca31628d0"
上面的參數應該是可以修改的,這里是掃描python代碼,所以可以用這個命令執行
執行成功,可以訪問http://192.168.2.122:9000/code_scan/dashboard?id=test,查看結果
遇到問題
直接在項目目錄執行sonar-scanner,報錯
直接在項目目錄執行sonar-scanner,沒有權限
這樣執行:sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://192.168.2.122:9000/code_scan" -D"sonar.login=8dcba09f6faf72b81258e58ead4d1d2ca31628d0"
項目包含java代碼
不能這樣執行:sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://192.168.2.122:9000/code_scan" -D"sonar.login=8dcba09f6faf72b81258e58ead4d1d2ca31628d0"
需要使用其他命令
密碼錯誤
提示如下