SonarQube + Maven分析代碼質量

SonarQube + Maven分析代碼質量

1.1. sonarqube簡介

SonarQube是個開源的代碼質量管理平臺,可以通過多種工具和維度對代碼質量進行分析,部分功能還支持可視化,對於代碼缺陷一目瞭然。SonarQube比較開放,支持通過插件擴展功能。支持衆多計算機語言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。由於我們的項目java語言,使用maven構建,接下來僅介紹sonarqube與maven構建集成進行代碼質量掃描。

1.2. 安裝配置sonarqube

Docker鏡像安裝(sonarqube+mysql),步驟省略

1.3. 與Maven集成

${MAVEN_HOME}/conf/settings.xml 配置如下:

<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://192.168.3.74:9000
                </sonar.host.url>

             </properties>
    </profile>
</profiles>

執行命令:mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015
使用sonarqube的token執行

首先,執行命令
mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015 ,如果日誌輸出”BUILD SUCCESS“說明已經構建成功。在瀏覽器查看分析結果。

1.4. 查看分析結果

在瀏覽器訪問:http://192.168.3.74:9000,賬號登錄進入。

1.4.1. home頁

下面是home頁,右邊PROJECTS頁面列出了所有的工程。點擊項目鏈接,可以查看項目詳細情況。
在這裏插入圖片描述

1.4.2. 項目質量信息
包含了很多信息,比如質量閾、bugs、漏洞、壞味道、單元測試覆蓋率、重複度、註釋量等。

質量閾:列出不達標的項,如漏洞、bugs、單元測試覆蓋率、新代碼重複度
新增bug或漏洞:相對於上次分析結果後新增的問題
債務:從提交日起到現在未解決的時間
新債務:從第一次分析開始到現在未解決的時間
代碼覆蓋率:在做單元測試時,代碼覆蓋率常常被拿來作爲衡量測試好壞的指標,比如,代碼覆蓋率必須達到80%或 90%
註釋量:具體項目-指標-大小-註釋
http://192.168.3.74:9000/component_measures?id=com.navinfo%3Acsu-parent&metric=comment_lines_density

1.4.3. 具體問題分析

點擊“問題”,打開問題視圖頁。通過點擊問題數,如下紅框所示,列出問題明細,包括問題嚴重級別,對應的問題數量,問題的描述

在這裏插入圖片描述

1.4.4. 問題解決結果

解決結果:確認、解決、誤判、不修復。
SonarQube允許管理員對問題進行重新確認。

1.4.5. 自定義規則

質量配置是在分析時使用的規則集合,每個語言都有默認配置。沒有指定其他配置的項目會使用默認配置。

sonarqube很多自帶的規則對項目有些影響,部分規則不需要啓用。sonarqube不允許修改默認的最優配置,我們先複製出來再修改。

不需啓用的規則,點擊“掛起”

修改項目質量配置規則:項目-配置-質量配置,選擇自定義的規則

1.5. IDEA集成SonarLint

SonarLint 是一個插件,可以集成到開發工具裏,當打開java文件時可自動分析靜態文件,也可以手動對整個項目做分析;可連接到SonarQube同步分析規則、質量規則與自定義設置;
接下來就說明下IDEA如何集成
1、配置maven
${MAVEN_HOME}/conf/settings.xml 配置如下:

<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://192.168.3.74:9000
                </sonar.host.url>

             </properties>
    </profile>
</profiles>

2、安裝插件sonarLint

3、配置SonarQube servers

如果勾選 Automatically tigger analysis ,將會自動對打開的文件進行分析
4、綁定上一步驟創建的,以及選擇項目對應的SonarQube的項目

5、執行命令 ,即可將項目進行分析,以及將分析的結果同步到SonarQube平臺上
mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015

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