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頁面看到信息
默認分析結果任何人都可以看到,如果想要把分析結果分配給某人的話,需要創建賬戶,然後把分析項目改爲私有,併爲分析項目分配用戶權限,之後就可以登錄相應的賬戶查看相應的分析項目了。