前期準備
1.SonarQube粗蔚,版本7.8,下載地址 https://www.sonarqube.org/
2.Sonar-Scanner/SonarRunner签餐,版本2.4哗讥,下載地址 http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/
3.mysql數(shù)據(jù)庫辙芍,版本5.7(8.0版本會出現(xiàn)sql異常)铆帽,下載地址https://dev.mysql.com/downloads/mysql/
安裝mysql
1.下載mysql-5.7.27-macos10.14-x86_64.dmg并安裝后啟動服務
點擊繼續(xù)直至出現(xiàn)下圖記錄下臨時密碼:
安裝完成后點開系統(tǒng)偏好設置并啟動mysql
2.創(chuàng)建數(shù)據(jù)庫用戶并授權(quán)
2.1登錄數(shù)據(jù)庫咆耿,并修改root賬號的密碼
mysql -u root -p -P 3306 -h localhost
此時輸入剛剛記錄的臨時密碼。注意:localhost冒號后的才是密碼爹橱!
mysql> set password for root@localhost = password('root');
2.2創(chuàng)建sonar賬號并分配權(quán)限
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
上述語句含義分別為:創(chuàng)建sonar數(shù)據(jù)庫萨螺;創(chuàng)建密碼為"sonar"的賬號sonar;賦予sonar用戶所有ip(不包含localhost)操作sonar庫所有表的權(quán)限;賦予sonar用戶本地操作sonar庫所有表的權(quán)限慰技;刷新權(quán)限表
安裝并配置sonar
1.下載sonarqube,sonar-runner并解壓椭盏,之后將文件夾移動到/usr/local下
mv Downloads/sonarqube-7.8 /usr/local
mv Downloads/sonar-runner-2.4 /usr/local/
2.進入sonarqube的config目錄下,編輯sonar.properties惹盼,添加如下配置
sonar.host.url=http://localhost:9000/sonarqube
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
3.進入sonar-runner的config目錄下庸汗,編輯sonar-runner.properties添加如下配置
sonar.host.url=http://localhost:9000
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
4.配置如下環(huán)境變量
export JAVA_HOME=你的java_home路徑,題主使用的sonar版本需要java11
export SONAR_HOME=/usr/local/sonarqube-7.8
export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4
export PATH=$SONAR_RUNNER_HOME/bin:$JAVA_HOME/bin:$PATH
啟動sonar
cd /usr/local/sonarqube-7.8/bin/macosx-universal-64
./sonar.sh start
查看log文件夾下面的日志
cd /usr/local/sonarqube-7.8/logs
日志下查看sonar.log惫确、es.log手报、ce.log 、web.log ,主要查看sonar.log以及web.log改化,如果啟動成功掩蛤,其他可以不看 ,啟動失敗就說明其他3個log文件中有錯誤陈肛。題主報錯主要都是web.log中出問題揍鸟。(因為數(shù)據(jù)庫使用了mysql8.0版本,啟動時出現(xiàn)各種sql異常)
常見的錯誤是es啟動失斁浜怠:請查詢es啟動失敗常見錯誤解決問題阳藻,多數(shù)情況下是root的身份(這里指的是linux下的)、沒有控制某個目錄的權(quán)限(可以將該目錄配置給啟動用戶)谈撒。
安裝漢化包
1.啟動成功后腥泥,瀏覽器中輸入http://localhost:9000/ 即可進入sonarqube網(wǎng)址,根據(jù)之前配置的賬號密碼(都是sonar)登錄
如圖啃匿,先點擊位置1蛔外,再點擊位置2,在位置3中輸入chinese溯乒,即可看見Chinese Pack,最后點擊位置4以安裝中文語言包夹厌。等待安裝完成。之后重啟sonarqube服務即可裆悄。
使用
1.maven項目
創(chuàng)建項目與令牌矛纹,在maven項目執(zhí)行對應命令即可
2.gradle項目
2.1方法1
創(chuàng)建項目與令牌,在build.gradle
文件中聲明org.sonarqube
插件并執(zhí)行對應命令即可光稼。
如果gradlew命令不生效可以使用gradle wrapper命令替代或南。
2.2方法2
在build.gradle文件中加入如下配置
plugins {
id "org.sonarqube" version "2.7"
}
sonarqube {
properties {
property "sonar.host.url", "http://localhost:9000"
property "sonar.login", "admin"
property "sonar.password", "admin"
}
}
之后執(zhí)行編譯命令即可
gradle wrapper clean test sonar
成功上傳的項目列表如下圖