<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      代碼質(zhì)量檢測(SonarQube)整合中文版+阿里P3C

      簡介

      SonarQube <https://www.sonarqube.org/>
      是一種自動代碼審查工具,用于檢測代碼中的錯誤,漏洞和代碼異味。它可以與您現(xiàn)有的工作流程集成,以便在項目分支和拉取請求之間進行連續(xù)的代碼檢查。


      連續(xù)代碼檢查,sonar可以單獨使用Maven、Gradle推送代碼檢查,當(dāng)然也可以在ci引擎進行代碼自動檢查,如: Jenkins、Git 。

      服務(wù)端

      安裝

      為了快速啟動sonarqube實例,我們采用docker的方式。

      sonarqube默認為英文版的,檢查規(guī)則為自帶的,我們這里采用中文漢化,另外java語言加入阿里p3c
      <https://github.com/alibaba/p3c>規(guī)則。

      使用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
      默認會吧插件掛載進容器內(nèi)部。

      啟動ok,查看控制臺進行訪問localhost:9000,默認賬號密碼:admin/admin。

      默認規(guī)則配置

      雖然已經(jīng)集成了阿里P3C,但是使用的還是默認規(guī)則,這里我們需要設(shè)置為指定規(guī)則。

      以admin賬號登陸



      打開 質(zhì)量配置profiles頁,點擊右上方的創(chuàng)建按鈕,創(chuàng)建 p3c profiles



      首次創(chuàng)建會跳轉(zhuǎn)到代碼規(guī)則配置頁面,剛新建的 profile 是沒有激活任何規(guī)則的,需要手動激活



      我們需要為剛創(chuàng)建的 p3c profile 激活 p3c 規(guī)則,點擊【激活更多規(guī)則】

      跳轉(zhuǎn)到激活頁面,搜索p3c,如圖,都是以[p3c]開頭的規(guī)則。



      批量修改->活動 p3c -> 應(yīng)用 -> 成功







      綁定規(guī)則成功后基本完成,我們返回質(zhì)量配置,在java選擇剛設(shè)置的p3c設(shè)置為默認。



      配置阿里P3C已經(jīng)完成。

      Maven代碼檢查

      sonarqube可以使用多種方式進行代碼上傳檢查。
      我們使用簡單的Maven觸發(fā)代碼檢查。

      添加插件

      在項目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>
      服務(wù)器相關(guān)配置:

      需要將<sonar.host.url>修改為之前搭建的sonarqube服務(wù)地址。
      <!-- SonarQube代碼質(zhì)量檢測 --> <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>
      觸發(fā)檢查

      pom配置完成,先將代碼進行構(gòu)建使用Maven package 命令。

      完成構(gòu)建執(zhí)行mvn sonar:sonar命令,也可以使用idea maven 可視化界面進行操作。



      運行完成。



      查看sonar報告

      打開sonar服務(wù)頁面127.0.0.1:9000



      可以看到上傳的項目列表,選擇項目查看分析結(jié)果,項目健康狀態(tài)等信息。



      問題里可以看到相關(guān)的代碼問題列表,打開單個則查看詳情。



      總結(jié)

      當(dāng)然我們只是使用了簡單的Maven方式推送至SonarQube服務(wù),當(dāng)然也可以在ci引擎進行代碼自動檢查,如: Jenkins、Git
      ,自動化檢查,有興趣的小伙伴也可以了解下其他功能,SonarQube官網(wǎng) <https://www.sonarqube.org/>。

      示例代碼地址: sonarqube-start <https://github.com/purgeteam/sonarqube-start>

      作者GitHub:
      Purgeyao <https://github.com/purgeyao> 歡迎關(guān)注

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          免费古装一级淫片潘金莲 | 韩国三级久久电影 | 国产一级无码Av片在线观看 | 91探花在线视频 | 老女人毛片 | 青青草中文 | 青青啪啪 | 岛国Av在线成人 俺去也激情 | 成人精品18 | 国产666|