IDEA中的代碼規範檢查很好用,但是不能檢測代碼的品質,所幸有了SonarQube,我們可以送出代碼到git上進行代碼品質檢測
為了體驗SonarQube,我們先來在Centos7上安裝SonarQube運作環境,首先準備sonarQube的安裝包,不友善下載下傳的可以使用百度雲提供的安裝包
提取碼:evd1
準備支援環境
SonarQube需要Java環境支援,是以我們必須先安裝java環境
## 檢視有沒有安裝java環境
java -version
## 如果已經安裝的跳過此步驟,如果沒有安裝java的話,centos7中提供yum安裝
yum install java
## 檢視java的版本(必須是1.8版本的,sonarqube内部的elasticsearch需要jdk1.8支援)
java -version
建立資料庫
提供Mysql資料庫,不在本機也無所謂,sonarQube初次運作時需要在資料庫中初始化一些表來存儲一些資料,隻需要建立資料庫即可,sonar自動會為我們建立表
## 建立sonar資料庫,字元集是UTF-8
create database sonar character utf8 collate utf8_general_ci;
安裝sonarqube
## 解壓sonarqube7.7
cd /usr/local/
unzip sonarqube-7.7.zip
cd sonarqube-7.7/
ll
檢視檔案如下:
image
其中bin檔案下是不同的操作檔案,conf檔案下是配置檔案,elasticsearch下是es的相關的配置檔案,logs是日志檔案
我們需要首先設定sonar的配置檔案,添加如下的配置消息:
## 修改sonar的配置檔案
vi /usr/local/sonarqube-7.7/conf/sonar.properties
添加如下的資訊
sonar.host.url=http://localhost:9090
sonar.jdbc.username=資料庫使用者名
sonar.jdbc.password=資料庫密碼
sonar.jdbc.url=jdbc:mysql://資料庫IP:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
## 配置web通路的路徑 這裡必須要有 / 字首
sonar.web.context=/sonar
## web容器的端口号
sonar.web.port=9090
以上配置就完成了
配置elasticsearch啟動的準備工作
sonarqube内部內建了elasticsearch,而elasticsearch是不能使用root使用者啟動的,必須是使用普通使用者來啟動,是以我們先建立普通使用者,并且授權
## 建立普通使用者
useradd sonarqube
passwd sonarqube
## 給普通使用者授sonarqube-7.7的權限
chmod -R 777 /usr/local/sonarqube-7.7
接下來,我們來修改系統相關的配置,以滿足elasticsearch啟動的需求,如果已經滿足了就可以跳過此步驟
elasticsearch需要配置系統相關的參數:具體可以參考官方的文檔:
具體操作簡化如下:
## 1.max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
## 修改/etc/security/limits.conf檔案,添加或修改如下行:
* hard nofile 65536
* soft nofile 65536
## 2.max virtual memory areas vm.max......
## 修改 /etc/sysctl.conf 檔案,添加如下行:
vm.max_map_count=262144
## 修改好了以後,調用sysctl -a檢視,發現參數并沒有變動,要重新開機才可以。
limits.conf 不需要重新開機,但是sysctl.conf則需要重新開機伺服器讓參數生效,如果伺服器不友善重新開機,也可以通過指令來臨時設定變量,隻是臨時的,伺服器重新開機的話,之前的設定就不會生效了
## 指令設定 vm.max_map_count 參數
sudo sysctl -w vm.max_map_count=262144
啟動sonarqube
至此我們已經全部配置好sonar啟動的環境和配置參數,我們來啟動sonarqube
## 使用普通使用者
su - sonarqube
## 啟動sonarqube
cd /usr/local/sonarqube-7.7/bin/linux-x86-64/
./sonar.sh start
## 檢視sonar狀态
./sonar.sh status
初次啟動,需要到資料庫中初始化表和資料,是以比較慢,可以随時檢視sonar的狀态
啟動失敗日志定位問題
如果啟動失敗,依次檢視 sonar.log --> es.log --> web.log 日志檔案來定位問題
通路web頁面
打開浏覽器,通路 http://SONAR安裝的伺服器IP:9090/sonar 就可以通路