安裝Sonarqube8
前提:sonarqube8需要jdk11的環境
yum install -y java-11-openjdk
去官網上下載對應的zip包,放到服務器中,我這里直接放到/root目錄下
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.6.0.39681.zip
unzip sonarqube-8.6.0.39681.zip
mkdir /opt/sonar
mv sonarqube-8.6.0.39681/* /opt/sonar/
useradd sonar
chown -R sonar. /opt/sonar
su sonar
#使用默認配置,如有需要,可使用oracle,postgresql等數據庫而不是保存sonarqube數據
/opt/sonar/bin/linux-x86-64/sonar.sh start
查看sonarqube日志:
tail -100f /opt/sonar/logs/sonar-20201230.log
啟動成功后,sonarqube默認web頁面訪問9000端口,默認賬號密碼都是admin,修改默認密碼,進入首頁:
生成令牌:
點擊頭像,安全一欄下:輸入令牌名稱(任意字符串),我這里寫成token,點擊生成
保存生成的token,后面jenkins連接sonarqube需要使用。
jenkins整合sonarqube
jenkins安裝sonarqube scanner插件
安裝完成重啟后,配置sonar的憑證信息:選擇secrect text,secrect填入上一步sonarqube生成的token,點擊確定
點擊進入系統配置,找到sonarqube server,添加sonar憑證和server url(sonarqube web頁面訪問路徑)
點擊全局工具配置,新增一個sonarqube scanner,點擊保存
Sonarqube代碼審查
非流水線項目
對非流水線項目添加sonarqube scan的步驟
配置一些信息:注意task to run需要填入scan
sonar.projectKey=test01
sonar.projectName=test01
sonar.projectVersion=1.0
sonar.sources=.
#sonar.exclusions=**/test/**,**/target/**
sonar.java.binaries=target
sonar.java.source=1.8
sonar.java.target=1.8
sonar.sourceEncoding=UTF-8
點擊保存,然后build now,等待構建完成后,進入sonarqube,發現審查結果已經出來了
故意寫一點冗余代碼,觀察sonarqube結果:
流水線項目審查代碼
項目根目錄創建一個sonar-project.properties文件,文件內容與剛才一樣
sonar.projectKey=web_pipeline
sonar.projectName=web_pipeline
sonar.projectVersion=1.0
sonar.sources=.
#sonar.exclusions=**/test/**,**/target/**
sonar.java.binaries=target
sonar.java.source=1.8
sonar.java.target=1.8
sonar.sourceEncoding=UTF-8
配置Jenkinsfile:注意箭頭指出的名字要對應上

修改完成后提交,然后構建流水線項目,觀察結果:流水線項目成功被sonarqube審查