摘要:也就是說(shuō),在不運(yùn)行程序的情況下報(bào)告錯(cuò)誤。此外,用戶還可以自己定義規(guī)則,檢查代碼是否符合某些特定的編碼規(guī)范。使用短寫(xiě)方式運(yùn)行任務(wù)輸出的檢測(cè)報(bào)告在我們定義的目錄里可以找到
在Gradle中使用阿里巴巴Java開(kāi)發(fā)規(guī)約插件進(jìn)行代碼檢查 概述
最近阿里發(fā)布了《阿里巴巴Java開(kāi)發(fā)手冊(cè)》,一時(shí)間無(wú)數(shù)阿里擁躉如獲武穆遺書(shū),就在近日阿里又順便發(fā)布了<阿里巴巴java開(kāi)發(fā)規(guī)約插件>,可以輕松的在碼字階段獲得相應(yīng)的編碼提示,那么,在Gradle中如何應(yīng)用阿里開(kāi)發(fā)規(guī)約進(jìn)行代碼檢查呢.且看下文.
阿里的開(kāi)發(fā)規(guī)約插件是基于PMD進(jìn)行的代碼檢測(cè),所以在Gradle應(yīng)用阿里開(kāi)發(fā)規(guī)約檢查只需要使用gradle提供的pmd插件即可達(dá)成目的.
目前阿里開(kāi)發(fā)規(guī)約提供了如下一些規(guī)則配置,要應(yīng)用這些配置只需要將他們配置到pmd的檢查規(guī)則中即可.
ali-comment.xml
ali-concurrent.xml
ali-constant.xml
ali-exception.xml
ali-flowcontrol.xml
ali-naming.xml
ali-oop.xml
ali-orm.xml
ali-other.xml
ali-set.xml
PMD介紹
PMD(Project Manager Design)是一種開(kāi)源分析Java代碼錯(cuò)誤的工具。與其他分析工具不同的是,PMD通過(guò)靜態(tài)分析獲知代碼錯(cuò)誤。也就是說(shuō),在不運(yùn)行Java程序的情況下報(bào)告錯(cuò)誤。PMD附帶了許多可以直接使用的規(guī)則,利用這些規(guī)則可以找出Java源程序的許多問(wèn)題。此外,用戶還可以自己定義規(guī)則,檢查Java代碼是否符合某些特定的編碼規(guī)范。
PMD的核心是JavaCC解析器生成器。PMD結(jié)合運(yùn)用JavaCC和EBNF(擴(kuò)展巴科斯-諾爾范式,Extended Backus-Naur Formal)語(yǔ)法,再加上JJTree,把Java源代碼解析成抽象語(yǔ)法樹(shù)(AST,Abstract Syntax Tree)。
使用以上內(nèi)容引自百度百科-PMD條目
apply plugin: "java" apply plugin: "pmd" ext { p3c = "1.3.0" } pmd { consoleOutput = true reportsDir = file("build/reports/pmd") ruleSets = [ "java-ali-comment" ] } repositories { jcenter() } dependencies { pmd "com.alibaba.p3c:p3c-pmd:${p3c}" }
這里有幾個(gè)需要注意的點(diǎn)
gradle的pmd插件為rule都添加了默認(rèn)的java-前綴,一定不要丟掉
dependencies中依賴(lài)的范圍是pmd,這樣依賴(lài)才會(huì)加到pmdClasspath中為pmd所用
關(guān)于本插件的一些其它配置可以查看 pmd插件dsl手冊(cè)
運(yùn)行檢查該插件提供了如下幾個(gè)任務(wù)
任務(wù)名稱(chēng) | 描述 |
---|---|
pmdMain | 檢查src/main/java下的代碼 |
pmdTest | 檢查src/main/test下的代碼 |
pmdSourceSet | 檢查給定范圍的代碼 |
check | 檢查源碼和單元測(cè)試代碼 |
可以按照需求運(yùn)行對(duì)應(yīng)任務(wù)進(jìn)行代碼檢查。
//使用短寫(xiě)方式運(yùn)行pmdMain任務(wù) gradle pM
輸出的檢測(cè)報(bào)告在我們定義的目錄里可以找到build/reports/pmd
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67837.html
摘要:代碼規(guī)約掃描插件以今年年初發(fā)布的阿里巴巴開(kāi)發(fā)規(guī)約為標(biāo)準(zhǔn),作為的插件形式存在,檢測(cè)代碼中存在不規(guī)范得位置然后給予提示。 IntelliJ IDEA是目前最好最強(qiáng)最智能的Java IDE,前幾天,他剛剛年滿18歲。 showImg(https://segmentfault.com/img/remote/1460000017974611);? 本文,給大家推薦幾款我私藏已久的,自己經(jīng)常使用的...
摘要:年月底,阿里巴巴集團(tuán)發(fā)布了阿里巴巴開(kāi)發(fā)手冊(cè)終極版,年月日,在杭州云棲大會(huì)上,代碼規(guī)約插件全球首發(fā),插件支持以上版本和以上版本。阿里巴巴代碼規(guī)約插件安裝阿里代碼規(guī)約插件有插件和插件。 2017年9月底,阿里巴巴集團(tuán)發(fā)布了《阿里巴巴Java開(kāi)發(fā)手冊(cè)》PDF終極版,2017年10月14日,在2017杭州云棲大會(huì)上,Java代碼規(guī)約插件全球首發(fā),p3c-pmd插件支持Eclipse4.2以上版...
摘要:說(shuō)明這篇文章是我第一次認(rèn)真閱讀阿里巴巴開(kāi)發(fā)手冊(cè)終極版的筆記。說(shuō)明本手冊(cè)明確防止是調(diào)用者的責(zé)任。一年半載后,那么單元測(cè)試幾乎處于廢棄狀態(tài)。好的單元測(cè)試能夠最大限度地規(guī)避線上故障。 說(shuō)明 這篇文章是我第一次(認(rèn)真)閱讀《阿里巴巴 Java 開(kāi)發(fā)手冊(cè)(終極版)》的筆記。手冊(cè)本身對(duì)規(guī)范的講解已經(jīng)非常詳細(xì)了,如果你已經(jīng)有一定的開(kāi)發(fā)經(jīng)驗(yàn)并且有良好的編碼習(xí)慣和意識(shí),會(huì)發(fā)現(xiàn)大部分規(guī)范是符合常識(shí)的。所以...
摘要:于是我建議這位小伙伴使用了進(jìn)行屬性拷貝,這為我們的程序挖了一個(gè)坑阿里代碼規(guī)約當(dāng)我們開(kāi)啟阿里代碼掃描插件時(shí),如果你使用了進(jìn)行屬性拷貝,它會(huì)給你一個(gè)非常嚴(yán)重的警告。大名鼎鼎的提供的包,居然會(huì)存在性能問(wèn)題,以致于阿里給出了嚴(yán)重的警告。 聲明:本文屬原創(chuàng)文章,始發(fā)于公號(hào):程序員自學(xué)之道,并同步發(fā)布于 https://blog.csdn.net/dadiyang,特此,同步發(fā)布到 sf,轉(zhuǎn)載請(qǐng)注...
閱讀 1776·2023-04-25 16:28
閱讀 715·2021-11-23 09:51
閱讀 1491·2019-08-30 15:54
閱讀 1176·2019-08-30 15:53
閱讀 2857·2019-08-30 15:53
閱讀 3448·2019-08-30 15:43
閱讀 3287·2019-08-30 11:18
閱讀 3315·2019-08-26 10:25