Centos 安裝 SonarQube

一、 SonarQube說明

1. SonarQube介紹

官網安裝地址

參考安裝說明

Sonar (SonarQube)是一個開源平臺,用於管理源代碼的質量.

Sonar 不只是一個質量數據報告工具,更是代碼質量管理平臺。

支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種編程語言的代碼質量管理與檢測。
Sonar可以從以下七個維度檢測代碼質量,而作爲開發人員至少需要處理前5種代碼質量問題。

1. 不遵循代碼標準
        sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫。
2. 潛在的缺陷
        sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢 測出潛在的缺陷。
3. 糟糕的複雜度分佈
        文件、類、方法等,如果複雜度過高將難以改變,這會使得開發人員 難以理解它們, 且如果沒有自動化的單元測試,對於程序中的任何組件的改變都將可能導致需要全面的迴歸測試。
4. 重複
        顯然程序中包含大量複製粘貼的代碼是質量低下的,sonar可以展示 源碼中重複嚴重的地方。
5. 註釋不足或者過多
        沒有註釋將使代碼可讀性變差,特別是當不可避免地出現人員變動 時,程序的可讀性將大幅下降 而過多的註釋又會使得開發人員將精力過多地花費在閱讀註釋上,亦違背初衷。
6. 缺乏單元測試
        sonar可以很方便地統計並展示單元測試覆蓋率。
7. 糟糕的設計
        通過sonar可以找出循環,展示包與包、類與類之間的相互依賴關係,可以檢測自定義的架構規則 通過sonar可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測藕合。

通過以下介紹SonarQube的安裝、使用說明。

2. 爲什麼要選擇sonarQube?

1. 更加優秀的圖形化界面

基本上通過界面就可以對自己項目的代碼狀況一目瞭然

2. 可以查詢出其它軟件難以定位到的問題

比如 : 可能導致空指針異常的問題 (對象在進行使用前沒有加空的判斷)
可能導致內存泄漏的問題, 在try catch 塊裏面,直接使用e.printStackTrace()將堆棧信息打印到內存的
可能導致的漏洞 : 成員變量使用public定義的
還有諸如 : 流等未關閉或者是非正常關閉都能夠檢測出來!
功能非常強大!!

二、 安裝

2.1 安裝SonarQube web server

安裝先決條件:

  1. 首先確保安裝JDK
  2. 下載SonarQube,下載解壓之後找到對應的啓動文件即可啓動

2.2 安裝Mysql

數據庫要求 MySQL >=5.6 && < 8.0

1. 創建數據庫

create database sonar;

2. 創建用戶並授權

CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'Sonar@123';

3. 爲用戶設置執行權限

GRANT ALL ON sonar.* TO 'sonar'@'localhost';

4. 修改SonarQube配置文件

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar@123

默認情況下已經SonarQube已經攜帶了初Oracle之外的其他數據庫驅動

2.2 配置 sonar.properties

1. 配置Elasticsearch存儲路徑

默認情況下,Elasticsearch數據存儲在 <install_directory>/data 中,但不建議用於生產實例。

編輯 <install_directory>/conf/sonar.properties 以配置以下設置:

sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp

用於啓動SonarQube的用戶必須具有對這些目錄的讀寫權限

2. 啓動Web服務器

默認端口爲“9000”,上下文路徑爲“/”。可以在<install_directory>/conf/sonar.properties中更改這些值:

sonar.web.host=192.0.0.1
sonar.web.port=80
sonar.web.context=/sonar

執行以下腳本以啓動服務器:

  • 在Linux/Mac OS上:bin/<您的操作系統>/sonar.sh啓動
  • 在Windows上: bin/windows-x86-XX/StartSonar.bat

您現在可以在http://localhost:9000上瀏覽SonarQube (默認系統管理員憑據爲admin / admin)。

注意:不要使用Root用戶啓動SonarQube

# 添加用戶
adduser sonar
# 設置密碼
passwd  xxxx
# 爲文件夾設置用戶
chown -R  用戶名 文件夾名

2.3 Linux配置爲系統服務

新建文件/etc/init.d/sonar 並輸入下面內容

#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
 
/usr/bin/sonar $*

執行下面命令自動啓動

# 創建超鏈接
sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar

#修改腳本權限
sudo chmod 755 /etc/init.d/sonar

# 添加自啓動
sudo chkconfig --add sonar

三、 使用

3.1 安裝必要的插件(漢化包)


安裝完成之後重啓

3.2 分析項目源代碼

使用Maven方式分析項目
其他方式參考:https://docs.sonarqube.org/display/SCAN

  1. settings.xml 配置如下:
<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

分析Maven項目包括運行Maven目標:sonar:sonar在pom.xml文件所在的目錄中。


mvn clean verify sonar:sonar
  
# In some situation you may want to run sonar:sonar goal as a dedicated step. Be sure to use install as first step for multi-module projects
mvn clean install
mvn sonar:sonar
 
# Specify the version of sonar-maven-plugin instead of using the latest. See also 'How to Fix Version of Maven Plugin' below.
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar

Eclipse項目運行方式:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章