優(yōu)化、分析Java源代碼的11款軟件工具

2011-08-03 16:33:01來源:作者:

下面的文章介紹了11款優(yōu)化和分析java源碼的軟件工具,可以幫助你最小成本地解決源代碼潛在的問題。原文來自國外dzone網(wǎng)站。

下面的文章介紹了11款優(yōu)化和分析java源碼的軟件工具,可以幫助你最小成本地解決源代碼潛在的問題。原文來自國外dzone網(wǎng)站。

1. PMD from http://pmd.sourceforge.net/

PMD能夠掃描Java 源代碼,查找類似以下的潛在問題:

可能的bug——try/catch/finally/switch語句中返回空值。

死代碼——未使用的局部變量、參數(shù)、私有方法。

不理想的代碼——使用String/StringBuffer。

過于復(fù)雜的表達(dá)式——沒有必要使用if語句、while循環(huán)可以代替for循環(huán)。

重復(fù)代碼——復(fù)制/粘貼的代碼引發(fā)的bug。

PMD集成了JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, 以及 Emacs。

2. FindBug from http://findbugs.sourceforge.net

FindBug是一個(gè)使用靜態(tài)方法來查找Java代碼漏洞的程序。

3.Clover from http://www.cenqua.com/clover/

這個(gè)插件允許你在不離開IDE的環(huán)境條件下來衡量和檢測(cè)覆蓋效果。該插件通過使用Apache Ant、Maven來無縫集成其它項(xiàng)目,可以通過命令行界面和API系統(tǒng)輕松集成到傳統(tǒng)的構(gòu)建系統(tǒng)中。

該插件的特性:

支持快速、準(zhǔn)確、可配置的方法,語句等。

支持豐富的報(bào)告格式:HTML、PDF、XML、以及Swing GUI。

精確控制源代碼級(jí)別的過濾。

支持代碼覆蓋以及其它指標(biāo)的圖表。

完全兼容JUnit 3.x & 4.x, TestNG, JTiger以及其它的測(cè)試框架。

4. Macker from http://innig.net/macker/

Macker是一個(gè)適用于Java開發(fā)人員用來檢查架構(gòu)規(guī)則的工具。你可以定制一個(gè)適合特定項(xiàng)目架構(gòu)的規(guī)則文件,也可以為您的代碼撰寫通用的規(guī)則說明。

5. EMMA from http://emma.sourceforge.net/

EMMA支持的覆蓋類型:方法、類等。

輸出報(bào)告的格式為:文本、HTML、XML。

輸出報(bào)告可以高亮顯示某些項(xiàng)目。

EMMA不需要訪問源代碼,可以在輸入類中減少調(diào)試的信息。

6. XRadar from http://xradar.sourceforge.net/

XRadar是一個(gè)開放的、為代碼生成可擴(kuò)展報(bào)告的工具。目前支持基于Java的所有系統(tǒng)。批量處理的框架可以用來生成HTML/SVG系統(tǒng)的報(bào)告。Xradar可以估量代碼的大小、復(fù)雜性以及代碼的重復(fù)性、依賴性等。

7. Hammurapi from http://www.hammurapi.com

Hammurapi是一款執(zhí)行Java程序代碼的自動(dòng)檢測(cè)工具。提供的實(shí)例中含有282條Hammurapi代碼規(guī)則,提供了120多個(gè)Java類,這款所謂的檢測(cè)工具,可以從三個(gè)級(jí)別來檢測(cè)代碼是否違背了編碼標(biāo)準(zhǔn)。

8. Relief from http://www.workingfrog.org/

Relif是一款設(shè)計(jì)工具,為Java項(xiàng)目提供了嶄新的面貌。我們可以充分發(fā)揮自己的能力來處理真實(shí)的實(shí)例——通過檢測(cè)大小、形狀、關(guān)系等來簡(jiǎn)化處理過程。

9. Hudson from http://hudson-ci.org/

Hudson 是一個(gè)持續(xù)集成工具,使用Java編寫,運(yùn)行在servlet容器中,比如Apache Tomcat或者或GlassFish應(yīng)用服務(wù)器。它支持SCM工具,包括CVS、Subversion、Git和ClearCase。它可以執(zhí)行 Apache Ant、基于Apache Maven的項(xiàng)目、以及任意的shell腳本和 Windows批處理命令。

10. Cobertura fromhttp://cobertura.sourceforge.net/

Cobertura是一個(gè)免費(fèi)的基于jcoverage的Java工具,用于計(jì)算代碼被測(cè)試訪問的百分比,它可以被用來確定Java程序中的缺少部分的測(cè)試覆蓋率。

11. SonarSource from http://www.sonarsource.org/

Sonar是一個(gè)管理代碼質(zhì)量的開放平臺(tái)。因此,它涵蓋了代碼質(zhì)量的7個(gè)方面:架構(gòu)與設(shè)計(jì)、重復(fù)、單元測(cè)試、復(fù)雜性、潛在錯(cuò)誤、編碼規(guī)則、評(píng)論。

英文原文:http://java.dzone.com/articles/java-tools-source-code

贊助商鏈接: