您好,登錄后才能下訂單哦!
如何對SonarQube代碼質量檢測整合,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
SonarQube是一種自動代碼審查工具,用于檢測代碼中的錯誤,漏洞和代碼異味。它可以與您現有的工作流程集成,以便在項目分支和拉取請求之間進行連續的代碼檢查。
連續代碼檢查,sonar可以單獨使用Maven
、Gradle
推送代碼檢查,當然也可以在ci引擎進行代碼自動檢查,如: Jenkins
、Git
。
安裝
為了快速啟動sonarqube
實例,我們采用docker的方式。
sonarqube
默認為英文版的,檢查規則為自帶的,我們這里采用中文漢化,另外java
語言加入阿里p3c規則。
使用git克隆項目:
git clone https://github.com/purgeteam/sonarqube-start cd docker-start
sonar-docker-start.yml
模板如下:
# 漢化版+阿里p3c驗證 version: "2" services: sonarqube: image: sonarqube ports: - "9000:9000" networks: - sonarnet environment: - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar volumes: - sonarqube_conf:/opt/sonarqube/conf - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins - ./plugin/rhinoceros/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar:/opt/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar - ./plugin/sonar-l10n-zh-plugin-1.16.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-1.16.jar db: image: postgres ports: - "5432:5432" networks: - sonarnet environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - ./postgres/postgresql:/var/lib/postgresql - ./postgres/postgresql_data:/var/lib/postgresql/data networks: sonarnet: driver: bridge volumes: sonarqube_conf: sonarqube_data: sonarqube_extensions: sonarqube_bundled-plugins: postgresql: postgresql_data:
使用docker-compose啟動
docker-compose -d sonar-docker-start.yml up
默認會吧插件掛載進容器內部。
啟動ok,查看控制臺進行訪問localhost:9000
,默認賬號密碼:admin/admin
。
默認規則配置
雖然已經集成了阿里P3C,但是使用的還是默認規則,這里我們需要設置為指定規則。
以admin賬號登陸
打開 質量配置profiles
頁,點擊右上方的創建
按鈕,創建 p3c profiles
首次創建會跳轉到代碼規則配置頁面,剛新建的 profile 是沒有激活任何規則的,需要手動激活
我們需要為剛創建的 p3c profile 激活 p3c 規則,點擊【激活更多規則】
跳轉到激活頁面,搜索p3c,如圖,都是以[p3c]
開頭的規則。
批量修改->活動 p3c -> 應用 -> 成功
綁定規則成功后基本完成,我們返回質量配置
,在java
選擇剛設置的p3c
設置為默認。
配置阿里P3C已經完成。
sonarqube
可以使用多種方式進行代碼上傳檢查。 我們使用簡單的Maven
觸發代碼檢查。
添加插件
在項目pom
文件里添加sonar-maven-plugin
插件。
<build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.6.0.1398</version> </plugin> </plugins> </build>
服務器相關配置:
需要將<sonar.host.url>
修改為之前搭建的sonarqube
服務地址。
<!-- SonarQube代碼質量檢測 --> <profiles> <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.host.url>http://127.0.0.1:9000/</sonar.host.url> </properties> </profile> </profiles>
觸發檢查
pom
配置完成,先將代碼進行構建使用Maven
package
命令。
完成構建執行mvn sonar:sonar
命令,也可以使用idea
maven
可視化界面進行操作。
運行完成。
查看sonar報告
打開sonar
服務頁面127.0.0.1:9000
可以看到上傳的項目列表,選擇項目查看分析結果,項目健康狀態等信息。
問題里可以看到相關的代碼問題列表,打開單個則查看詳情。
當然我們只是使用了簡單的Maven
方式推送至SonarQube
服務,當然也可以在ci引擎進行代碼自動檢查。
關于如何對SonarQube代碼質量檢測整合問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。