sonarqube是一個代碼質量管理平臺,可以定位代碼中潛在的或者明顯的錯誤,支持多種語言的代碼審查,且有豐富的插件,方便集成使用。
分爲三步走:
1.sonarqube搭建
2.sonarqube使用
3.sonarqube集成
sonarqube搭建
sonarqube官網:https://www.sonarqube.org/
最新版本是8.1,看官方文檔的要求裏 server要求jdk11,且數據庫不支持mysql。
因測試平臺,jenkins都部署在65那臺機器上,我也不想將其jdk8換成jdk11,於是找了一個相對比較新的版本7.6
sonarqube7.6的安裝包下載地址:
選擇7.6的原因有兩點:1.可以用原有的jdk8 2.可以用原有的mysql5.7
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
sonarqube安裝
1.將下載下來的7.6版本(建議先本地下載再傳到服務器上去)解壓縮
unzip sonarqube-7.6.zip
2.將解壓縮後的文件移動到/usr/local/ 下面,並且文件夾的名字變爲sonarqube
mv sonarqube-7.6 /usr/local/sonarqube
3.啓動sonarqube
進入/usr/local/sonarqube/bin/linux-x86-64 bin的目錄下面對應不同的操作系統,可根據實際的操作系統進行選擇進入
./sonar.sh start
這時會提示started
但實際上並沒有啓動成功,可以去查看日誌,但是網上其他很多文章也說過這個問題,其實就是sonarqube不能通過root來啓動,需要創建用戶
4.創建非root用戶並啓動
1--創建用戶
adduser sonarUser
2--設置密碼 需要輸入兩次,要複雜一點
passwd XXXXr
3---修改sonar的目錄和用戶組爲sonarUser(/usr/local目錄下面)
chown -R sonarUser:sonarUser sonarqube
4--以sonarUser執行命令
su sonarUser
./sonar.sh start
重啓和停止:
- ./sonar.sh stop 停止服務
- ./sonar.sh restart 重啓服務
5.訪問sonar
但是這個時候,首頁會給你報個數據庫的錯誤,當然因爲並沒有創建數據庫的原因
6.創建sonar數據庫
創建數據庫 sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
只要創建sonar數據庫就行了,表格sonar會自動進行創建
修改sonar的數據庫配置文件
cd /usr/local/sonarqube/conf
vim sonar.properties
以下內容都是配置文件裏面預留的,查找相關內容,將#去掉,配置成實際的
需要修改的地方
1.數據庫的ip,端口
2.數據庫的用戶名和密碼
以上配置完成後,重啓sonar
- ./sonar.sh restart 重啓服務
訪問sonarhttp://x.x.x.x:9000
這次因爲配置了數據庫,所以第一次頁面啓動比較慢,他需要去初始化數據庫的表格
至此sonarqube算是搭建完成!
sonarqube使用
默認登錄用戶名密碼爲admin,admin
1.漢化 安裝中文插件,完成後會提示你重啓,重啓下就變成中文了。
2.拿商家端做個實驗
因商家端之前我拿jenkins部署過,所以相對比較瞭解,它是通過maven去編譯的
1)創建一個項目,名稱啥的可以隨便填,但是爲了方便標識,最好就用可以代表項目的名字
2)創建令牌,一步步執行就行了
3)選擇語言及構建方式,點擊代碼區域右上角的複製
4)將複製的內容放到服務器上項目的根目錄下面執行,執行完成後會自動將報告上傳到sonarqube
坑:
maven命令執行完成時報錯,報告刪除失敗:
原因是mysql對最大上傳文件的大小做了限制4M,實際報告有68M
方法:修改mysql配置文件
my.cnf 將max_allowed_packet=128M 可以根據實際情況進行設置
記住1:my.cnf設置完成後,一定要將mysql重啓service mysqld restart
記住2:sonar也必須重啓
以上都做完,再重新執行下maven命令就可以了。
sonarqube集成
這部分後面在寫,可以通過jenkins或者gitlabci都可以進行集成