使用PMD進行代碼審查

不得不說,很多人的代碼還是寫的很不規範,之前沒接手現在這個項目的時候還真的不知道原來之前的人寫代碼這麼浪,各種魔法數字亂飛,各種try catch,Collection也不注意性能,只要功能能實現就好了,導致性能異常低下,還有各種從網上copy代碼也不看看性能的,最扯的是竟然看到了一個MD5的實現。。。難道之前寫代碼的人不知道java自帶的md5實現嗎?也就不吐槽了,現在接手代碼需要對代碼進行整改重構,想先大概的掃一遍代碼,不過代碼量的確也很大,肉眼看的話,實在是有點累人,也就想着偷懶看能不能找些自動掃描工具,查了一下,目前用的比較多的也就PMD,checkstyle,findbugs,大致看了下,目前用的人比較多的好像是PMD,而且官網一直也在更新,就上網站下載下來了。

   不知道是不是因爲被牆的關係,https://pmd.github.io/ pmd的包下載的特別慢,下載的速度一直保持在10幾K,好不容易下載完了,在下載的中間網上順便查了一下使用手冊,但是竟然發現,網上的資料竟然那麼老,都不能用了,還是要去看官方文檔上的資料,筆者使用的是window7的系統,下載完之後,解壓出來,按下WIN+R,打開運行命令cmd,進入控制檯,進入到~\pmd-bin-5.4.4\bin,剛纔解壓的路徑下,接下來就是要對工程進行掃描了

 

例子如下

pmd -d E:\Eclipse-Projects\project-1.2-develop -f html -r e:\design.html -R java-design

-d 是dir,指定代碼路徑,筆者掃描的是整個代碼工程,-f 是format,指定要輸出的格式,默認是txt, -R 是指定使用的是哪種規則集,這裏說一下,網上目前看的,除了筆者的這篇文章其他寫的幾乎都是錯的,至少我目前沒看到正確的規則集,新版的規則集格式換了,

目前pmd支持的規則集有 java-basic,java-unusedcode,java-imports,java-design,java-typeresolution,指定的規則集就是掃描的代碼必須滿足一定的規則纔可以通過,如果不滿足的話,pmd都會幫你羅列出不滿足規則集的代碼,以及行號,還有-r 是-reportfile指定輸出的文件路徑,這樣基本的命令,運行的話就可以等待控制檯完成,去指定路徑查看html,看工具給我們的代碼提了哪些意見了,筆者認爲這個工具還是不錯的,相比與checkstyle的話,checkstyle如果自己不寫規則的話,按照google或者sun自帶的規則的話,就實在太嚴格了,滿滿的都是報錯。。

PMD裏面還給我們提供了一些好用的GUI的工具裏面的cpdgui可以查找重複的代碼,bgastviewer可以把代碼抽象成語法樹等等,剩下的大家可以自己去摸索了,這個工具相對目前其他的代碼審查工具,功能還是挺全面的,大家可以一試。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章