下載下傳位址:https://www.sonarqube.org/downloads/
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip #下載下傳到目前目錄
unzip sonarqube-6.4.zip #解壓到目前目錄
cd sonarqube-6.4
vi conf/sonar.properties #編輯配置檔案,加入分割線内代碼
---------------------------------------
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&allowMultiQueries=true
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.web.port=9000
---------------------------------------
登陸到mysql,建立一個名為sonar的資料庫
create database sonar;
./bin/linux-x86-64/sonar.sh console & #console 表示顯示啟動日志,用start也可以,&表示啟動完成後回到指令行
模式,不會卡在啟動完成界面,也不會因為退出指令行而終止程序;有些版本linux需要運作exit指令後再關閉ssh視窗,不然也會宕掉
啟動成功後通過 http://ip:9000 即可通路sonar,預設賬号admin,密碼admin,如果開啟了iptables或者firewalld防火牆,需要把9000端口加入允許通過清單
中文語言包:
在https://github.com/SonarQubeCommunity/sonar-l10n-zh上找到對應sonar版本的中午jar包下載下傳後上傳至sonar根目錄下的extensions\plugins目錄即可
版本更新:
1、複制 /conf/sonar.properties中相關配置檔案到新版本中(注意最好不要直接複制整個檔案)
2、到官網的插件版本矩陣https://docs.sonarqube.org/display/PLUG/Plugin+Version+Matrix 去檢視新版本與你所需要的插件版本對應關系,下載下傳插件jar包放入extensions/plugins中
3、啟動服務端./bin/linux-x86-64/sonar.sh start
4、http://localhost:9000/setup (localhost為你的sonar位址) 點選upgrade遷移資料庫(一般不會出問題無需備份,如确有需要可以備份資料庫)
配置maven以自動建構:
修改maven配置檔案settings.xml
<profiles>節點下添加如下内容:
<profile>
<id>sonar</id>
<properties>
<!--預設資料庫配置-->
<!-- <sonar.jdbc.url>jdbc:h2:tcp://localhost:8000/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.h2.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password> -->
<!--mysql資料庫配置-->
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>cmiot</sonar.jdbc.password>
<!--sonar生成配置-->
<sonar.projectKey>${project.artifactId}-${project.version}</sonar.projectKey>
<sonar.projectName>${project.artifactId}-${project.version}</sonar.projectName>
<sonar.projectVersion>${project.version}</sonar.projectVersion>
<sonar.sources>src/main/java</sonar.sources>
<sonar.language>java</sonar.language>
<sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
<sonar.host.url>http://localhost:9000</sonar.host.url> <!-- Sonar伺服器位址 -->
<sonar.scm.disabled>true</sonar.scm.disabled> <!-- 解決svn沖突問題 -->
</properties>
</profile>
<activeProfiles>節點下添加如下内容:
<activeProfile>sonar</activeProfile>
運作maven指令 mvn sonar:sonar 即可把結果上傳至sonar伺服器。
內建jenkins:
在建構指令中加入如下代碼即可把單元測試覆寫率和sonar分析結果上傳至sonar伺服器:
cd ~/.jenkins/workspace/ProjectName
mvn org.jacoco:jacoco-maven-plugin:prepare-agent clean install
mvn sonar:sonar
遇到的錯誤:
後面遇到一個在錯誤:某些項目可以上傳報告至sonar某些項目不行,百思不得其解,苦逼了好久,後來在sonar根目錄下logs/web.log中發現以下資訊:Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1109540 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
才知道是mysql的max_allowed_packet參數過小造成的,于是在my.cnf的[mysqld]下找到該參數,原來為1M,改為2M。重新開機mysql,問題解決。
基于Docker安裝(未完善):
docker pull 等方法先下載下傳一個sonar鏡像
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube #前面的端口為外部端口,後面的為docker内部端口