使用Checkstyle工具檢查java代碼風格

1歧强、介紹

Checkstyle是一種開發(fā)工具哪廓,可幫助程序員編寫符合編碼標準的Java代碼灭红。它使檢查Java代碼的過程自動化侣滩,從而使人類免于這項無聊(但重要)的任務(wù)。這使其成為希望實施編碼標準的項目的理想選擇变擒。

Checkstyle具有高度可配置性君珠,可以支持幾乎任何編碼標準。提供了一個示例配置文件娇斑,支持Sun Code Style策添,Google Java Style。

報告樣式:


image.png

特性/功能:

Checkstyle可以檢查源代碼的許多方面毫缆。它可以找到類設(shè)計問題唯竹,方法設(shè)計問題。它還能夠檢查代碼布局和格式問題苦丁。

官網(wǎng)地址:https://checkstyle.org/index.html

2浸颓、安裝/配置/使用

安裝方式有兩種

  • 命令行 方式
  • grade 方式

2.1、命令行方式

(1) 下載/安裝

下載地址: https://github.com/checkstyle/checkstyle/releases/

我這里下載的是 checkstyle-8.17-all.jar ,下載到本地是個 java包芬骄,我們在本地配置好java環(huán)境猾愿,即可通過 java 指令來啟動他。

(2) 配置規(guī)則(Style, Rule)

官網(wǎng)提供了兩種代碼風格的規(guī)則:

官網(wǎng)的關(guān)于風格的介紹: https://checkstyle.org/style_configs.html

我找到一個華為的 java Style 账阻,比較適合 Android 開發(fā)蒂秘。
下載地址: https://github.com/vir56k/demo/blob/master/checkstyle/MyApplication444/config/huawei_CheckStyle.xml

(3) 使用 checkstyle 檢查代碼風格

使用 google 風格

java -jar checkstyle-8.17-all.jar -c /google_checks.xml /Users/zhangyunfei/git/MyApplication33/app/src

使用 sun 風格

 java -jar checkstyle-8.17-all.jar -c /sun_checks.xml /Users/zhangyunfei/git/MyApplication444

使用華為風格:

java -jar checkstyle-8.17-all.jar -c ./huawei_CheckStyle.xml /Users/zhangyunfei/git/MyApplication33/app/src/main/java

下面是我使用的示例截圖:


image.png

2.2、gradle 方式

常用的方式還是在gradle下配置

2.2.1 配置說明

gradle 方式 配置 checkstyle 腳本存放在 scripts 文件夾下

checkstyle.gradle           grald腳本配置淘太,關(guān)鍵在這里
huawei_CheckStyle.xml       規(guī)則配置
suppressions.xml            規(guī)則配置

checkstyle.gradle 腳本內(nèi)容:

      apply plugin: 'checkstyle'


  def configDir = "${project.rootDir}/scripts"
  def reportsDir = "${project.buildDir}/reports"


  task checkstyle(type: Checkstyle) {
      configFile file("$configDir/checkstyle/huawei_CheckStyle.xml")
      configProperties.checkstyleSuppressionsPath = file("$configDir/checkstyle/suppressions.xml").absolutePath
      source 'src'
      include '**/*.java'
      exclude '**/gen/**'
      exclude '**/test/**'
      exclude '**/androidTest/**'

      classpath = files()
  }


  check.dependsOn 'checkstyle'

2.2.2 怎么應(yīng)用姻僧?

在 app 的 build.gradle 中加入下面引用

 apply from: '../scripts/checkstyle/checkstyle.gradle'

2.2.3 執(zhí)行 checkstyle

./gradlew clean check

2.2.4 查看報告

報告存放于:app/build/reports/checkstyle/ 文件夾下

2.2.5 常見問題

gradle 下載不到包的問題规丽,請使用阿里鏡像,示例:

allprojects {
    repositories {
        maven { url "https://maven.aliyun.com/repository/jcenter/" }
        maven { url "https://maven.aliyun.com/repository/gradle-plugin/" }
        maven { url "https://maven.aliyun.com/repository/google/" }
        jcenter()
        google()

    }
}

3撇贺、參考:

https://checkstyle.org/cmdline.html //命令下使用

https://github.com/checkstyle/checkstyle

https://github.com/checkstyle/checkstyle/releases/

http://www.reibang.com/p/fc2f45a9ee37

https://gist.github.com/ownwell/c32878440216f1866842

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赌莺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子松嘶,更是在濱河造成了極大的恐慌艘狭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翠订,死亡現(xiàn)場離奇詭異巢音,居然都是意外死亡,警方通過查閱死者的電腦和手機尽超,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門官撼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人似谁,你說我怎么就攤上這事傲绣。” “怎么了巩踏?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵秃诵,是天一觀的道長。 經(jīng)常有香客問我蛀缝,道長顷链,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任屈梁,我火速辦了婚禮,結(jié)果婚禮上榛了,老公的妹妹穿的比我還像新娘在讶。我一直安慰自己,他們只是感情好霜大,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布构哺。 她就那樣靜靜地躺著,像睡著了一般战坤。 火紅的嫁衣襯著肌膚如雪曙强。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天途茫,我揣著相機與錄音碟嘴,去河邊找鬼。 笑死囊卜,一個胖子當著我的面吹牛娜扇,可吹牛的內(nèi)容都是我干的错沃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼雀瓢,長吁一口氣:“原來是場噩夢啊……” “哼枢析!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刃麸,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤醒叁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泊业,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辐益,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年脱吱,在試婚紗的時候發(fā)現(xiàn)自己被綠了智政。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡箱蝠,死狀恐怖续捂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宦搬,我是刑警寧澤牙瓢,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站间校,受9級特大地震影響矾克,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜憔足,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一胁附、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滓彰,春花似錦控妻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至他匪,卻和暖如春菇存,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邦蜜。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工依鸥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畦徘。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓毕籽,卻偏偏與公主長得像抬闯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子关筒,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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