sonar集成ail-p3c插件

背景

《阿里巴巴Java開發(fā)手冊(cè)》自從第一個(gè)版本起,倍受業(yè)界關(guān)注,很多人甚至希望能盡快在自己的團(tuán)隊(duì)推行起來,讓團(tuán)隊(duì)有一套共同的開發(fā)準(zhǔn)則?;谶@套準(zhǔn)則,我們希望達(dá)到以下兩個(gè)要求:

1.以插件的形式集成到j(luò)ava的IDE開發(fā)環(huán)境(IDEA、Eclipse),用于開發(fā)人員的代碼自檢。

2.將該開發(fā)規(guī)范集成到sonar的規(guī)則庫,同時(shí)和gitlab-ci集成,制定閾值規(guī)則,不滿足要求,pipline執(zhí)行失敗。

如何實(shí)現(xiàn)

插件導(dǎo)入IDE

阿里巴巴開發(fā)了一套自動(dòng)化的IDE檢測(cè)插件(IDEA、Eclipse), 該插件在掃描代碼后,將不符合《手冊(cè)》的代碼按Blocker/Critical/Major三個(gè)等級(jí)顯示在下方,甚至在IDEA上,還基于Inspection機(jī)制提供了實(shí)時(shí)檢測(cè)功能,編寫代碼的同時(shí)也能快速發(fā)現(xiàn)問題所在。對(duì)于歷史代碼,部分規(guī)則實(shí)現(xiàn)了批量一鍵修復(fù)的功能。

代碼已經(jīng)開源,GitHub:https://github.com/alibaba/p3c

打開IDEA,選擇Preferences - Plugins - Browse repositories后,在輸入框中輸入"alibaba",可以看到返回結(jié)果中有"Alibaba Java Coding Guidelines"。

制作sonar插件

1.在github找到一個(gè)p3c的sonar插件開源項(xiàng)目,https://github.com/mrprince/sonar-p3c-pmd,導(dǎo)入工程后,修改規(guī)則名org.sonar.plugins.pmd.PmdConstants,REPOSITORY_NAME為規(guī)則名稱PMD_wwyl。

插件打包:mvn clean package sonar-packaging:sonar-plugin -Dmaven.test.skip=true

2.將生成的插件放到/extensions/plugins

3.重啟sonar,需切到非root賬號(hào),先啟動(dòng)es服務(wù), ./elasticsearch -d? 再啟動(dòng)sonar服務(wù)./sonar.sh start

4.查看sonar和es服務(wù)日志是否正常

5.sonar規(guī)則增加了p3c,完工。

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

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