技術選型
下載地址:鏈接:https://pan.baidu.com/s/1bak9cDDc2Edc4S3gn4fFsA 提取碼:tas3
數據庫 | mysql5.6 ~ mysql5.7 |
代碼分析 | sonarqube-7.6 |
掃描器 | sonar-scanner-cli-4.0.0.1744-linux |
漢化包 | sonar-l10n-zh-plugin-1.26.jar |
安裝sonarqube
1. 上傳並解壓sonarqube
2 創建用戶(elasticsearch不能以root用戶啟動),並賦予權限
創建用戶
# useradd sonar
# passwd sonar
賦予權限
# chown -R sonar.sonar /usr/local/userfile/sonarqube-7.6
3. 編輯sonar.properties文件(默認啟動端口9000,我這里修改了8010)
vim sonarqube-7.6/conf/sonar.properties
sonar.web.port=8010 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root
創建數據庫
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
4. 切換用戶,啟動SonarQube
切換至sonar用戶下啟動sonar
# su sonar
啟動 SonarQube
# cd /usr/local/userfile/sonarqube-7.6/bin/linux-x86-64
# ./sonar.sh start
瀏覽器測試 192.168.200.100:8010
用戶名:admin
密碼:admin
【漢化】
將 sonar-l10n-zh-plugin-1.26.jar 漢化包,放到 sonarqube-7.6/extensions/plugins 目錄下, 重啟sonar就好了。
# ./sonar.sh restart
掃描項目
1. 在項目的根目錄下創建 sonar-project.properties 文件

sonar.projectKey=【項目唯一標識】 sonar.projectName= sonar.projectVersion=1.0 sonar.sources=【項目所在路徑】 sonar.exclusions=**/test/**,**/target/** sonar.java.binaries=target/classes sonar.java.source=1.8 sonar.java.target=1.8 sonar.sourceEncoding=UTF-8
然后再sonar面板創建項目配置掃描,將sonar的maven命令 復制到 項目的根目錄下 去執行就好了。
此時就可以看到我們檢查信息
安裝 sonar-scanner-cli 掃描器
上面我們安裝好sonarqube之后,后續沒法手動再次掃描,所以我們就會用到這個工具了。
1. 解壓 安裝包
2. 配置環境變量 vim /etc/profile
export SONAR_RUNNER_HOME=/usr/local/userfile/sonar-scanner-4.0.0.1744-linux/ $SONAR_RUNNER_HOME/bin 然后 source /etc/profile 刷新文件就好了
3. 配置數據庫信息(由於我上面把sonar默認的9000端口改了,所以我這里也要指定下sonar的端口)
vim sonar-scanner-4.0.0.1744-linux/conf/sonar-scanner.properties
#----- Default SonarQube server sonar.host.url=http://localhost:8010 #----- Default source code encoding #sonar.sourceEncoding=UTF-8 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin
4. 然后我們在項目的根目錄,也就是 sonar-project.properties 所在的目錄執行命令就能掃描了。(我們可以寫成命令,通過jenkins來觸發或者用定時任務腳本來執行)
# sonar-scanner