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

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

簡介

SonarQube是一種自動代碼審查工具季研,用于檢測代碼中的錯誤富腊,漏洞和代碼異味腺占。它可以與您現(xiàn)有的工作流程集成,以便在項目分支和拉取請求之間進行連續(xù)的代碼檢查毒租。

img

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

服務(wù)端

安裝

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

sonarqube默認為英文版的孤个,檢查規(guī)則為自帶的,我們這里采用中文漢化沛简,另外java語言加入阿里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賬號登陸

img

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

img

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

img

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

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

img

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

img
img
img

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

img

配置阿里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 可視化界面進行操作。

img

運行完成殃饿。

img

查看sonar報告

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

img

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

img

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

img

總結(jié)

當然我們只是使用了簡單的Maven方式推送至SonarQube服務(wù)奈惑,當然也可以在ci引擎進行代碼自動檢查吭净,如: JenkinsGit肴甸,自動化檢查寂殉,有興趣的小伙伴也可以了解下其他功能,SonarQube官網(wǎng)原在。

示例代碼地址: sonarqube-start

作者GitHub:
Purgeyao 歡迎關(guān)注

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末友扰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庶柿,更是在濱河造成了極大的恐慌村怪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浮庐,死亡現(xiàn)場離奇詭異甚负,居然都是意外死亡,警方通過查閱死者的電腦和手機审残,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門梭域,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搅轿,你說我怎么就攤上這事病涨。” “怎么了璧坟?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵没宾,是天一觀的道長。 經(jīng)常有香客問我沸柔,道長循衰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任褐澎,我火速辦了婚禮会钝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘工三。我一直安慰自己迁酸,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布俭正。 她就那樣靜靜地躺著奸鬓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掸读。 梳的紋絲不亂的頭發(fā)上串远,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天宏多,我揣著相機與錄音,去河邊找鬼澡罚。 笑死伸但,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的留搔。 我是一名探鬼主播更胖,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隔显!你這毒婦竟也來了却妨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤括眠,失蹤者是張志新(化名)和其女友劉穎管呵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哺窄,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡捐下,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萌业。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坷襟。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖生年,靈堂內(nèi)的尸體忽然破棺而出婴程,到底是詐尸還是另有隱情,我是刑警寧澤抱婉,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布档叔,位于F島的核電站,受9級特大地震影響蒸绩,放射性物質(zhì)發(fā)生泄漏衙四。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一患亿、第九天 我趴在偏房一處隱蔽的房頂上張望传蹈。 院中可真熱鬧,春花似錦步藕、人聲如沸惦界。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沾歪。三九已至,卻和暖如春雾消,著一層夾襖步出監(jiān)牢的瞬間灾搏,已是汗流浹背挫望。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留确镊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓范删,卻偏偏與公主長得像蕾域,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子到旦,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容