SonarQube整合阿里開發(fā)規(guī)范

一、sonarqube簡介

  Sonar是一個用于代碼質(zhì)量管理的開源平臺,用于管理Java源代碼的質(zhì)量。通過插件機(jī)制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續(xù)集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。

通過不同的插件對這些結(jié)果進(jìn)行再加工處理,通過量化的方式度量代碼質(zhì)量的變化,從而可以方便地對不同規(guī)模和種類的工程進(jìn)行代碼質(zhì)量管理。同時 Sonar 還對大量的持續(xù)集成工具提供了接口支持,可以很方便地

在持續(xù)集成中使用 Sonar。 此外,Sonar 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。

二、代碼質(zhì)量檢測規(guī)劃

   隨著代碼量的增多,服務(wù)模塊的拆分,代碼越來越難進(jìn)行管理,質(zhì)量與效率的矛盾慢慢凸顯出來,而人為的管理代碼質(zhì)量,耗時耗力。因此實現(xiàn)自動化工具檢測勢在必行,

平臺規(guī)劃使用云端和本地結(jié)合的方式實現(xiàn)代碼質(zhì)量的管控。云端Git + Jenkins + Sonar執(zhí)行自動代碼質(zhì)量分析,研發(fā)人員在Git提交代碼后,會自動觸發(fā)Jenkins構(gòu)建項目,構(gòu)建

項目前,自動觸發(fā)Sonar檢測代碼質(zhì)量,并將結(jié)果展示在頁面。本地研發(fā)人員提交代碼前,先用編碼規(guī)范進(jìn)行代碼檢測,檢測沒有異常,才能提交代碼。

   Sonar本身提供了大量的代碼檢測規(guī)則,但是很多規(guī)則并不影響代碼的質(zhì)量和效率。目前業(yè)界比較好的java代碼規(guī)范是阿里發(fā)布的《阿里巴巴java開發(fā)手冊》,而二者也可以很方便的集成在一起。

   本地代碼檢測規(guī)則和云端Sonar的配置的規(guī)則應(yīng)保持一致,Sonar提供了IDE開發(fā)工具插件sonarLint,可以將sonarQube服務(wù)上配置的規(guī)則同步到開發(fā)工具上。但是目前Sonar并不支持自定義規(guī)則的同步,所以需要先在開發(fā)工具裝安裝阿里的p3c編碼規(guī)范插件,然后從中選擇平臺適用的規(guī)范。目前這是折中方案,后續(xù)將繼續(xù)研究如何將第三方的規(guī)則從sonarQube上同步到本地IDE中,使自定義規(guī)則的同步更方便。

   推薦使用Idea進(jìn)行研發(fā),idea可以自定義配置需要的代碼檢查規(guī)則。

一、pmd插件整合阿里開發(fā)規(guī)則

sonar-pmd是sonar官方的支持pmd的插件,但是還不支持p3c,需要在pmd插件源碼中添加p3c支持(p3c是阿里在pmd基礎(chǔ)上根據(jù)阿里開發(fā)手冊實現(xiàn)了其中的49開發(fā)規(guī)則)。

源碼下載地址:https://github.com/mrprince/sonar-p3c-pmd

此源碼工程已經(jīng)添加了P3C支持,直接mvn package打包即可。

打好jar包后拷貝到sonar的plugins目錄下:

|

sonarQube_Home/extensions/plugins

|

重啟sonarQube,進(jìn)入sonarQube后,選擇“代碼規(guī)則”菜單,在頁面中,選擇“Java”,搜索框中搜索“p3c”,右側(cè)列表能顯示規(guī)則則導(dǎo)入成功

注意:注意SonarQube版本匹配問題,當(dāng)前SonarQube 7.2社區(qū)版

image.png

二、配置阿里開發(fā)規(guī)則

選擇“質(zhì)量配置”菜單,點擊“創(chuàng)建”按鈕

image.png

在彈出的頁面出輸入配置名稱并選擇編程語言,創(chuàng)建配置

image.png

進(jìn)入配置頁面后,點擊“更多激活規(guī)則”,可以進(jìn)入規(guī)則選擇頁面

image.png

語言選擇“Java”,并在搜索框中輸入“p3c”,查找出之前導(dǎo)入的阿里編碼規(guī)則

image.png

點擊需要添加的規(guī)則后的“活動”按鈕,可以將此條規(guī)則激活,加入創(chuàng)建的質(zhì)量配置中

image.png

點擊“活動”按鈕的彈出框中可以選擇此條規(guī)則的適用嚴(yán)重程度

image.png

三、設(shè)置Java和項目的質(zhì)量配置

選擇“質(zhì)量配置”菜單,在頁面中選擇剛才創(chuàng)建的質(zhì)量配置,點擊配置按鈕選擇“設(shè)為默認(rèn)”,可以將

該質(zhì)量配置設(shè)置為java默認(rèn)配置,提交的java代碼會自動被質(zhì)量配置中的規(guī)則進(jìn)行質(zhì)量檢查

image.png

如果不設(shè)置未默認(rèn),也可以點擊剛才創(chuàng)建的質(zhì)量配置,在跳出的頁面中選擇“修改項目”,來添加

適用該質(zhì)量配置的項目

image.png

IDEA添加阿里編碼規(guī)范

打開IDEA的Settings


image.png

選擇Plugins,右側(cè)選擇Alibaba Java Coding Guidelines,并install


image.png

重啟IDEA后,可以看到Tools下已有阿里編碼規(guī)約

image.png

二、IDEA選擇適用的阿里編碼規(guī)范

打開IDEA的Settings,選擇Inspections,在右側(cè)的界面中Copy一個Profile并改名,與系統(tǒng)的Profile進(jìn)行區(qū)別。

Leavel 是Project Leavel,用橡皮檫清空原來的選擇的規(guī)則后選擇Ali-Check下的規(guī)則,Ali-Check分類下即是

阿里巴巴的編碼規(guī)范。

image.png

配置好Ali-Check后,可以選擇將Profile導(dǎo)出,其他同事可以直接導(dǎo)入使用

image.png

三、IDEA使用配置的編碼規(guī)范進(jìn)行代碼檢測

選擇Analyze下的Inspect Code菜單

image.png

在彈出的界面中選擇配置的Ali-Check進(jìn)行檢測

image.png

檢測結(jié)果會顯示在IDEA的下方

image.png

也可以在想要檢查的類上右擊,Analyze→Inspect Code,進(jìn)行當(dāng)前類的檢測

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容