kodofish.dev

軟體工程實踐練習場

有想到什麼就會拿來寫寫看

從事軟體開發工作已經多年,軟體品質、工程師績效向來是一直難以量化呈現的問題。過去曾看過管理階層試圖以各種方式來定義,但總有許多技術上的問題與人性挑戰。無法量化,團隊就難以對於品質有一致的認知,沒有一致的認知在開發的過程中多少就會有些許的衝突。

而 SonarQube 就是個讓你可以把團隊的軟體品質給數據化呈現出來軟體,也能讓團隊瞭解所開發的軟體是否有些潛在的問題。

如果你無法加以量度,或是無法以數字將之表達出來,那麼你對於那樣東西的所知,則要歸於貧乏之列,或是嚴重不足— Lord Kelvin

這篇來講講 SonarQube 安裝,這篇是我在安裝 SonarQube 時的安裝過程整理,

下載 SonarQube

SonarQube 官網 提供了幾個版本可以下載,分為 Community、Developer、Enterprise 與 Data Center 四個版本,可依自己的需求下載適合的版本。由於這次是先試用評估功能,所以就先下載 Community 的版本。

SonarQube download

快速啟動 SonarQube

這方式蠻適合想先試用 SonarQube 評估對於團隊的幫助有多少時,可以先用快速安裝來減少前期準備的時間。 將先前下載的 SonarQube 解壓縮並放在適合的位置後,以命令列執行 StarSonar.bat。例如:

$SONARQUBE-HOME\bin\windows-x86-xx\StartSonar.bat

就官方文件上寫的,這樣應該就可以啟動 SonarQube 了,但我執行就看到這樣的訊息。

SonarQube execute fail

在訊息的一開始有個 Unable to execute Java command. 的訊息,猜想可能是找不到 java 執行檔, 試著用 command line 去執行 java。

execute java

果然!! 找不到 Java,找不到 java 就將 java 加入環境參數內,再重新執行一次。這次就順利執行起來了, 打開瀏覽器輸入 http://localhost:9000/ 看到 SonarQube 的畫面就完成了。

完整安裝 SonarQube

前一節的快速啟動算是可以讓你用較短的時間將 SonarQube 執行起來,並開始試用它。但只要伺服器重新開機就必須手動再重新執行一次,對於長期使用來說並不方便,而且前面也提到過沒有安裝資料庫,未來若是程式升級或是你想要搬伺服器的話,資料有可能是無法轉移的。因此這一節來說說該如何完整安裝 SonarQube。

在執行 SonarQube 前,有兩件事要先準備好。第一是安裝 Java JRE 11。第二是安裝資料庫。

安裝 Java JRE 11

在這一步,我本來是想照著文件安裝 Java JRE 11 就好了,但找來找去找不到, 索興安裝 Java JDK 11。

安裝資料庫

這個步驟是可以略過的,SonarQube 就會將資料儲存在本地,但這方法官方有說是不支援未來的升級與轉移的,所以已經確定要正式導入團隊使用時,建議還是採用完整安裝,建立專用的資料庫來讓 SonarQube 使用會比較恰當。

資料庫支援 PostgreSQL、MS SQL、Oracle 這種資料庫,就挑選自己熟悉或喜歡的裝,若是用在公司還是要考量公司的技術偏好與可支援的程度來決定,這篇文章就不特別寫該如何安裝資料庫。

設定資料庫

在準備好資料庫後, 編輯 $SONARQUBE-HOME/conf/sonar.properties 這個設定檔來設定資料庫,這裡我使用 Oracle。設定參考如下,請再自己換成屬於自己環境的設定。

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=username
sonar.jdbc.password=password
#----- Oracle 11g/12c/18c/19c
sonar.jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:sonarqubedb

下載 jdbc driver

使用 Oracle 時還得要自己另外載下 jdbc driver, 並放到 $SONARQUBE-HOME/extensions/jdbc-driver/oracle 這個目錄底下,要特別注意的是千萬要下載 V12.1 以上的版本,像我一開始就是下載 v11.2.0.4.0 的版本,一直無法讓 Service 順利執行起來,還以為是不是連線字串有誤,查了老半天擔誤了不少時間後,才在 Log 裡看到一行錯誤訊息。

Caused by: org.sonar.api.utils.MessageException: Unsupported Oracle driver version: 11.2.0.4.0. Minimal supported version is 12.1.

這個錯誤就讓我多花了快兩個小時的時間…Orz

將 SonarQube 以 Windows Service 執行

SonarQube 已經準備好 Service 的執行檔,要安裝時執行

%SONARQUBE_HOME%/bin/windows-x86-64/InstallNTService.bat

解除安裝

%SONARQUBE_HOME%/bin/windows-x86-64/UninstallNTService.bat

要啟動或停止服務也只要執行以下的命令

%SONARQUBE_HOME%/bin/windows-x86-64/StartNTService.bat
%SONARQUBE_HOME%/bin/windows-x86-64/StopNTService.bat

Service 啟動後,打開瀏覽器輸入 http://localhost:9000/,看到 SonarQube 的畫面代表安裝已經完成。

SonarQube Screen

comments powered by Disqus

最新文章

分類

關於

關於 Kodofish, 但其實自介還沒寫