一、環(huán)境準備
1.系統(tǒng)java環(huán)境:
jdk1.8
2.數(shù)據(jù)庫:
mysql 5.7(mysql 5.6, mysql 8會報錯)
由于mysql數(shù)據(jù)庫max_allowed_packet 默認值過小,導致后期生產(chǎn)的報告寫入數(shù)據(jù)庫時報錯,故建議修改數(shù)據(jù)該值為500M(視項目大小決定),并重啟mysql
3.sonarqube 安裝包下載
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.3.zip
二、安裝運行
1.解壓sonarqube壓縮包
2.修改配置 :
修改 解壓文件路徑/conf/sonar.properties
sonar.jdbc.username= username
sonar.jdbc.password= password
sonar.jdbc.url=jdbc:mysql://xxxx:3306/xxx?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
3.準備啟動snoarqube
先用 useradd sonar 創(chuàng)建一個sonar用戶(因為es不支持用root用戶啟動,所以才需要創(chuàng)建sonar用戶),
然后用chown -R sonar:sonar /sonarqube-7.3(sonarqube-7.3這個是官網(wǎng)下載下來解壓的文件)添加權(quán)限。
Centos還需先修改兩個配置:
在/etc/sysctl.conf文件中加入
vm.max_map_count=262144
fs.file-max=65536
然后執(zhí)行sysctl -p使配置生效
在 /etc/security/limits.conf 加入
ulimit -n 65536
ulimit -u 2048
* soft nofile 65536
* hard nofile 65536
然后執(zhí)行source /etc/security/limits.conf
4.啟動sonarqube
切換到新建的sonar用戶 su sonar
到安裝目錄/bin/下,并進入到自己系統(tǒng)版本對應(yīng)目錄
首次執(zhí)行可以控制臺運行,可看到啟動日志
./sonar.sh console
后臺執(zhí)行命令為
./sonar.sh start
停用服務(wù)
sonar ./sonar.sh stop
啟動成功后可以訪問:http://myserver:9000 查看
5.安裝中文語言包
Sonarqube啟動成功后使用默認管理員用戶登陸后臺(admin admin),默認為英文版本,可以找到plugin安裝,然后搜索Chinese Pack,并安裝,然后會提示重啟系統(tǒng),重啟即可。
三、掃描項目并上傳報告
Sonarqube提供了多種掃描代碼方式,詳見官方文檔
https://docs.sonarqube.org/display/SCAN
maven項目建議直接使用SonarQube Scanner for Maven
1.添加mave配置(settings文件)
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
2.在要掃描的項目主pom文件下運行
mvn sonar:sonar
執(zhí)行成功后再Sonarqube控制面板上http://myserver:9000看到相關(guān)信息。