Eclipse外掛程式開發之FindBugs外掛程式

來源:互聯網
上載者:User
   問題提出:

  當我們編寫完代碼,做完單元測試等各種測試後就提交正式運行,只能由啟動並執行系統來檢測我們代碼是否有問題了,代碼中隱藏的錯誤在系統啟動並執行過程中被發現後,然後再來進行相應的修改,那麼後期修改的代價就相當高了。

  解決方案:

  現在有很多Java程式碼分析工具,FindBugs中開源項目當中的一個,它可以幫你找到代碼中隱藏的一些錯誤,提升你的代碼能力與系統安全可靠性。

   安裝

  JDK:1.5.0 從 http://java.sun.com上去下載安裝

  Eclipse:3.1.1 從 http://www.eclipse.org 上去下載解壓

  FindBugs:0.9.4 從 http://findbugs.sourceforge.net/

  官方的文檔 http://findbugs.sourceforge.net/manual/

  Eclipse plugin for FindBugs version 0.0.17 從 http://findbugs.sourceforge.net/downloads.html 下載

   外掛程式管理技巧

  提示:新下載的外掛程式PlugIn一定不要都放在原始的Eclipse目錄下去。
  1. 前提是你已經安裝好了Eclipse工具了,比如安裝在E:\OpenSource\Eclipse\目錄下,以下這個目錄以%ECLIPSE_HOME%來進行表示;
  2. 此時預設的外掛程式是在%ECLIPSE_HOME%\plugins目錄中的;
  3. 在%ECLIPSE_HOME%下建立一個PlugInsNew的目錄;
    比如:E:\OpenSource\Eclipse\PlugInsNew\
  4. 你下載了個新的外掛程式,比如叫做:XYZ
     那麼就在%ECLIPSE_HOME%\PlugInsNew\目錄下建立XYZ目錄,目錄裡面是eclipse目錄,eclipse目錄包含有features與plugins兩個子目錄;結構如下圖所示:

      
  5. 把下載的新外掛程式的檔案放在以下相應目錄中
    %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
    %ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
  6. 建立相關的.link的檔案
    然後在%ECLIPSE_HOME%\links目錄裡建立一個XYZ.link的檔案
    內容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行這樣的路徑指示而已。
    當然,採用相對路徑來表示可能更直觀一些,方便進行檔案整體移動和小組全部成員的共用命名用,省得移動後要改動Link檔案裡的絕對路徑而費心費力。直接拷貝過去就可以使用。
    即XYZ.link檔案的內容如是:path=../PlugInsNew/XYZ
    這樣,如果你下載了多個外掛程式就可以如法炮製建立多個Link檔案,想載入哪個外掛程式就把哪個外掛程式的Link檔案放到%ECLIPSE_HOME%\links的目錄中即可,使用與管理都很方便,建議千萬不要放在預設的安裝目錄中;
    如果你的%ECLIPSE_HOME%與此不同,請修改XYZ.link檔案裡的路徑
  7. 刪除,關閉Eclipse
    刪除%ECLIPSE_HOME%\links\XYZ.link檔案即可
    刪除%ECLIPSE_HOME%\PlugInsNew\XYZ整個目錄及檔案
  8. 重新啟動Eclipse即可

  使用

  重新啟動Eclipse後,在Help => About Eclipse SDK => Plug-in Details你可以看到由“FindBugs Project”提供的“FindBugs Plug-in”版本0.0.17外掛程式,如下圖所示:

  

  FindBugs的使用方法

  FindBugs是一個可以在Java程式中發現Bugs的程式。

  它是專門用來尋找處於“Bug Patterns”列表中的代碼的。

  Bug Patterns指很有可能是錯誤的代碼的執行個體。

  目前FindBugs最高版本0.9.4,不過更新速度很快的,你應當經常上去看看是否有新版本發布。Eclipse plugin for FindBugs最高版本0.0.17。

  系統要求

  使用FindBugs至少需要JDK1.4.0以上版本,FindBugs是平台獨立的,可以運行於GNU/Linux、Windows、MacOS X 等平台上。

  運行FindBugs至少需要有256 MB記憶體,如果你要分析一個很大的項目,那就需要更加多的記憶體了。

  FindBugs獨立運行和與Ant結合的詳細操作就不介紹了,可以看官方的文檔http://findbugs.sourceforge.net/manual/

  獨立啟動並執行效果圖如下:

  

  本文主要介紹在Eclipse中使用的情況

  開啟Bug Details視圖

  Windows => Show View => Other… => FindBugs => BugDetails

  

  在Package Explorer或Navigator視圖中,選中你的Java項目,右鍵,可以看到“Find Bugs”功能表項目,子功能表項裡有“Find Bugs”和“Clear Bug Markers”兩項內容,如下圖所示:

  

  我們建立一個簡單的測試檔案Test.java 內容如下:

public class Test { private String[] name; public String[] getName() { return name; } public void setName(String[] name) { this.name = name; } } 


  我們點中“Find Bugs”,運行時會出現如下進度框:

  運行結束後可以在Problems中看到增加了如下的警告資訊內容

  FindBugs運行後的警告資訊內容不僅在Problems視圖中顯示,而且將標記在原始碼標記框中,在原始碼編輯器中我們可以看到警告標識,如下圖:

  當游標指向你的警告資訊的代碼上面時,就會有相應的錯誤提示資訊,與Eclipse本身的錯誤或警告資訊提示類似。

  選中Problems視圖裡出現的相應問題,就會在代碼編輯器裡切換到相應的代碼上去,方便根據相應的提示資訊進行代碼的修改。

  

  在Problems視圖裡,選中相應的問題條目,右鍵,在彈出的菜單中,可以看到“Show Bug Details”,如下圖所示:

  

  點中它,會切換到Bug Details視圖上去,顯示更加詳細的提示資訊。

  當然,在代碼編輯視窗中,點擊帶有警告提示資訊的表徵圖時,也會自動切換到Bud Details視窗去,查看詳細的警告資訊,如下圖所示。

  

  根據這裡詳細的資訊,你可以得到FindBugs為什麼會對你的代碼警示告資訊,及相應的處理辦法,根據它的提示,你可以快速方便地進行代碼修改。

  

  根據提示,我們將代碼修改成如下,再運行就不會報有警告資訊了。

public class Test { private String[] name; public String[] getName() {     String[] temp = name; return temp; } public void setName(String[] name) {     String[] temp = name; this.name = temp; } } 

  配置FindBugs

  選擇你的項目,右鍵 => Properties => FindBugs =>

  

  可以配置的資訊包括如上圖所示的四個選項的相關設定:

  1. Run FindBugs Automatically開關

    當此項選中後,FindBugs將會在你修改Java類時自動運行,如你設定了Eclipse自動編譯開關後,當你修改完Java檔案儲存,FindBugs就會運行,並將相應的資訊顯示出來。

    當此項沒有選中,你只能每次在需要的時候自己去運行FindBugs來檢查你的代碼。

  2. Minimum priority to report選擇項

    這個選擇項是讓你選擇哪個層級的資訊進行顯示,有Low、Medium、High三個選擇項可以選擇,很類似於Log4J的層級設定啦。 比如:

    你選擇了High選擇項,那麼只有是High層級的提示資訊才會被顯示。

    你選擇了Medium選擇項,那麼只有是Medium和High層級的提示資訊才會被顯示。

    你選擇了Low選擇項,那麼所有層級的提示資訊都會被顯示。

  3. Enable bug categories選擇項

    在這裡是一些顯示Bug分類的選擇:

    Correctness關於代碼正確性相關方面的

    Performance關於代碼效能相關方面的

    Internationalization關於代碼國際化相關方面的

    Multithreaded correctness關於代碼多線程正確性相關方面的

    Style關於代碼樣式相關方面的

    Malicious code vulnerability關於惡意破壞代碼相關方面的

    比如:如果你把Style的檢查框去掉不選擇中它,那麼與Style分類相關的警告資訊就不會顯示了。其它的類似。

  4. Select bug patterns to check for選擇項

    在這裡你可以選擇所要進行檢查的相關的Bug Pattern條目

    可以從Bug codes、Detector name、Detector description中看到相應的是要檢查哪些方面的內容,你可以根據需要選擇或去掉相應的 檢查條件。

  總結

  此外掛程式的功能很不錯,可以協助我們提升Java代碼的編寫能力,寫出更加安全可靠的代碼。建議使用或加在Ant裡進行持續構建。

  現在,你可以馬上拿出你已經開發的一個項目,檢查一下你的代碼有沒有問題了。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.