sonarqube結合maven環境配置
1、環境說明
sonarqube安裝環境:
centos7
下載最新版本
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.5.zip
需要注意的是官網有四個版本,社群版、開發者版、企業版、資料中心版,可以在網站 https://www.sonarsource.com/plans-and-pricing 中看到,後三個需要收費,所以要下載社群版。
漢化包下載,下載與自己版本相匹配的,下載的7.4版本
https://github.com/SonarQubeCommunity/sonar-l10n-zh
2、伺服器java版本為1.8
# java -version
openjdk version "1.8.0_31"
OpenJDK Runtime Environment (build 1.8.0_31-b13)
OpenJDK 64-Bit Server VM (build 25.31-b07, mixed mode)
配置環境變數
# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64/jre
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
3、解壓
# unzip sonarqube-7.5.zip -d /data/opt
4、漢化
在自己電腦解壓漢化包sonar-l10n-zh-master.zip,使用Eclipse匯入解壓後的專案,右鍵點選 pom.xml -- Run As -- Run Configuretion
左邊 Maven Build 選擇自己的專案,設定 Goals: clean package ,點選 Run 開始編譯
最後編譯成功後在專案的 target 目錄下生成一個jar包,把該jar包上傳到sonarqube服務所在的機器上,拷貝到/data/opt/sonarqube-7.5/extensions/plugins 目錄下
5、為sonarqube建立庫和賬戶
登入資料庫伺服器
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;
6、配置並啟動
不要使用root賬戶啟動服務
# chown -R hduser0401:hadoop /data2/opt/sonarqube-7.4
# su hduser0401
$ vi /data2/opt/sonarqube-7.4/conf/sonar.properties
埠的配置按照預設配置
sonar.web.port=9000
sonar.search.port=9001
配置資料庫資訊
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://MYSQLSERVER_IP:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
$ cd /data/opt/sonarqube-7.4
$ ./bin/linux-x86-64/sonar.sh start
如果服務啟動失敗,需要檢查logs目錄下的幾個關鍵日誌檔案,es.logs、sonar.logs、web.logs ,檢視異常資訊
通常的異常情況:
檔案許可權問題
使用root使用者啟動服務
埠被佔用
資料庫資訊配置錯誤
7、訪問頁面
http://SONARSERVER_IP:9000
預設賬號密碼
賬戶:admin
密碼:admin
8、maven配置
本地電腦下載maven
https://www-eu.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.zip
maven進行解壓,解壓後目錄 D:\program\apache-maven-3.6.0
修改setting.xml
編輯 D:\program\apache-maven-3.6.0\conf\setting.xml
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://MYSQLSERVER_IP:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://SONARSERVER_IP:9000</sonar.host.url>
</properties>
</profile>
</profiles>
把要分析的專案匯入Eclipse
在專案中修改java版本為1.8(確認本地java版本是1.8)
右鍵點選 pom.xml -- Run As -- Run Configuretion
左邊 Maven Build 選擇自己的專案,設定 Goals: clean install sonar:sonar -X , User settings: D:\program\apache-maven-3.6.0\conf\settings.xml
儲存配置,點選 Run 開始編譯
9、sonar web頁面介紹
任務完成後就可以在sonar的web頁面看到資訊
預設分析結果任何人都可以看到,如果想要把分析結果分配給某人的話,需要建立賬戶,然後把分析專案改為私有,併為分析專案分配使用者許可權,之後就可以登入相應的賬戶檢視相應的分析專案了。