天天看點

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

文章目錄

  • ​​一、最低配置要求​​
  • ​​1. JDK版本要求​​
  • ​​2. 資料庫版本要求​​
  • ​​3. 支援浏覽器版本​​
  • ​​二、軟體下載下傳安裝​​
  • ​​2.1. 軟體清單總覽​​
  • ​​2.2. jdk11下載下傳​​
  • ​​2.3. sonarqube下載下傳​​
  • ​​2.4. sonar-scanner-cli​​
  • ​​2.5. Oracle 驅動​​
  • ​​三、安裝實戰​​
  • ​​3.1. JDK sonar-scanner​​
  • ​​3.2. sonarqube​​
  • ​​3.3. oracle驅動​​
  • ​​3.4. 啟動sonar​​
  • ​​3.4. 登入驗證​​
  • ​​3.5. Sonarqube 中文插件專欄​​
  • ​​四、 內建oracle資料庫​​
  • ​​4.1. 建立命名空間​​
  • ​​4.2. 建立sonarqube使用者及賦予權限​​
  • ​​4.3. 配置資料庫資訊​​
  • ​​4.3. 重新啟動​​
  • ​​4.4. 浏覽器驗證​​
  • ​​4.5. 資料庫驗證​​
  • ​​五、企業掃描實戰​​
  • ​​六、異常彙總及技巧​​
  • ​​6.1. 操作技巧​​
  • ​​6.2. root啟動sonarqube失敗​​
  • ​​6.3. node validation exception​​

使用sonarqube8.3 搭建企業級代碼品質管控平台

一、最低配置要求

1. JDK版本要求

​​https://docs.sonarqube.org/latest/requirements/requirements/​​sonarqube8.3 :JDK版本11及以上,支援 Oracle版本有(19C

18C 12C 11G)

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

2. 資料庫版本要求

Oracle案例:

支援資料庫 版本 編碼要求
Oracle 19C
18C
12C
11G
Must be configured to use a UTF8-family charset (see NLS_CHARACTERSET) 必須編碼為UTF-8
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
支援資料庫 版本 編碼要求
PostgreSQL 12
11
10
9.3–9.6
Must be configured to use UTF-8 charset 必須編碼為UTF-8

還支援Microsoft SQL Server,官網聲明高版本SonarQube暫不适配Mysql資料庫,建議自己可以嘗試一下mysql資料庫是否支援。

參考連結:

​​​Sonarqube Mysql​​

3. 支援浏覽器版本

浏覽器 版本
Microsoft Internet Explorer IE 11
Microsoft Edge Latest
Mozilla Firefox Latest
Google Chrome Latest
Safari Latest
二、軟體下載下傳安裝

2.1. 軟體清單總覽

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

2.2. jdk11下載下傳

官網位址:​​https://www.oracle.com/java/technologies/javase-jdk11-downloads.html​​

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

注:如果不能下載下傳,注冊一個賬戶即可

2.3. sonarqube下載下傳

sonarqube官網

​​https://www.sonarqube.org/downloads/​​ 預設下載下傳最新版

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

附上曆史版本下載下傳說明:

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

注:建議優先下載下傳最新版本

2.4. sonar-scanner-cli

sonar-scanner-cli

​​https://binaries.sonarsource.com/Distribution/sonar-scanner-cli​​

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

2.5. Oracle 驅動

ojdbc8-12.2.0.1      

位址:明天再補充下載下傳連結

三、安裝實戰

3.1. JDK sonar-scanner

#解壓jdk、sonar-scanner
tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz -C /app/
unzip sonar-scanner-cli-4.3.0.2102-linux.zip

#配置環境變量
vim /etc/profile
添加内容如下:

#java environment
export JAVA_HOME=/app/jdk-11.0.7
#配置sonar-scanner
export SONAR_RUNNER_HOME=/app/sonar-scanner-4.3.0
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin:$SONAR_RUNNER_HOME/bin

#重新整理環境變量
source /etc/profile      

3.2. sonarqube

#解壓sonarqube
unzip sonarqube-8.3.1.34397.zip

#建立sonar使用者并設定密碼
useradd sonar
passwd sonar
123456
123456

#賦予sonar使用者目錄權限
chown sonar.sonar /app/sonarqube-8.3.1 -R      

注:建立sonar使用者的原因是,啟動sonarqube内部會啟動elasticsearch,而elasticsearch不允許root使用者啟動,是以,啟動sonarqube需要單獨建立sonar使用者來操作,隻要不是root使用者即可。

3.3. oracle驅動

複制到指定路徑下面即可

cp ojdbc8-12.2.0.1.jar /app/sonarqube-8.3.1/extensions/jdbc-driver/oracle/      

3.4. 啟動sonar

#切換至sonar使用者
su - sonar

#進入執行腳本目錄
cd /app/sonarqube-8.3.1/bin/linux-x86-64/
#啟動sonar
./sonar.sh start
#檢視sonar運作狀态
./sonar.sh status
#監控sonar啟動日志(日志會有好幾個,重要的3個,先後生成依次是:sonar.log->es.log->web.log)
tail -f /app/sonarqube-8.3.1/logs/web.log      

3.4. 登入驗證

​​http://192.168.0.104:9000​​ 賬号:admin

密碼:admin

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

3.5. Sonarqube 中文插件專欄

​​​​

上面示範的是7.8版本,如果是8.3版本操作一樣,第一種就是你線上安裝,第二種就是去Github把對應版本的中文插件下載下傳到本地,在托到指定目錄即可。

例如:

線上安裝插件示範圖例:

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

單獨下載下傳插件示範:

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
/app/sonarqube-8.3.1/extensions/plugins      
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
四、 內建oracle資料庫

4.1. 建立命名空間

如果是docker安裝的oracle請參考下面例子

--建立明明空間 sonarqube
CREATE TABLESPACE sonarqube
DATAFILE '/home/oracle/app/oracle/oradata/helowin/sonarqube.dbf' SIZE 2018M
AUTOEXTEND ON NEXT 1024M MAXSIZE 20480M;      

如果是不使用docker安裝的oracle

CREATE TABLESPACE sonarqube
DATAFILE '/u01/oracle/oradata/sonar/sonarqube.dbf' SIZE 2018M
AUTOEXTEND ON NEXT 1024M MAXSIZE 20480M;      

注:參數中命名空間、大小均自定義

4.2. 建立sonarqube使用者及賦予權限

--建立sonarqube 使用者,密碼是sonarqube 
CREATE USER sonarqube IDENTIFIED BY sonarqube;
--給使用者賦予權限
GRANT CONNECT, RESOURCE ,DBA TO sonarqube;      

4.3. 配置資料庫資訊

cd /app/sonarqube-8.3.1/conf
vim sonar.properties

#添加資料庫資訊
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:oracle:thin:@192.168.0.104:1521/helowin
sonar.sorceEncoding=utf-8

注:端口1521、服務名helowin、編碼utf-8、使用者名、密碼      
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

4.3. 重新啟動

#切換sonar使用者
su - sonar
#進入執行腳本目錄
cd /app/sonarqube-8.3.1/bin/linux-x86-64/
#啟動soanr
./sonar.sh start
#監控sonar啟動日志軌迹,便于快速定位和分析問題(建議大家養成這樣的習慣)
tail -f /app/sonarqube-8.3.1/logs/web.log      
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

4.4. 浏覽器驗證

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

4.5. 資料庫驗證

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本
五、企業掃描實戰
1.建立一個掃描使用者的家目錄,用來存放項目代碼和配置檔案的目錄
2.在此目錄下面配置:
      一個配置檔案
      一個執行掃描腳本
      一個存放代碼目錄      

sonar-project.properties

# 項目key 用于辨別項目唯一性
sonar.projectKey=fis
# 項目名稱
sonar.projectName=fis
# 項目掃描的預設版本
sonar.projectVersion=1.0
# 掃描項目的目錄
sonar.java.binaries=fis
# web賬号
sonar.login=admin
# web 密碼
sonar.password=admin
# 掃描項目的源碼目錄
sonar.sources=fis
# 掃描項目的編碼設定
#sonar.sourceEncoding=UTF-8
sonar.sourceEncoding=GBK      

執行掃描腳本sonar-scanner.sh

sonar-scanner      

賦予掃描腳本可執行那個權限

chmod +x sonar-scanner.sh      

說明一下腳本執行原理:一般在​

​/app/sonar-scanner-4.3.0/conf​

​目錄下面配置項目資訊

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

進入​

​/app/sonar-scanner-4.3.0/bin​

​目錄執行sonar-scanner腳本即可,

linux搭建SonarQube代碼品質平台_Oracle 最新詳細版本

上面場景,隻有一個項目是可以的,但是如果有幾百個使用者,那對應幾百個項目,怎麼辦的,為每一個使用者建立一個掃描目錄,在目錄下面配置項目資訊和執行腳本加上掃描目錄即可實作。

六、異常彙總及技巧

6.1. 操作技巧

在啟動項目之前,打開2個視窗,一個是啟動sonar的視窗,另一個是生成日志的視窗,這樣想做的好處就是,可以監控項目從啟動到啟動的成功以及操作頁面觸發執行的操作,在日志中可以實時的監控;發生異常資訊,也可以快速的定位和分析,進而提高解決問題的效率。

有時候不會生成web.log如果遇到,說明啟動sonarqube失敗,根據啟動日志,分析日志的關鍵性資訊,定位導緻異常發生的原因。

6.2. root啟動sonarqube失敗

6.3. node validation exception