現在有很多庫、實用工具和程序任java開發人員選擇。每個工具都有其優點,但其中有一些因它的知名度、多功能性和有效性從眾多選項中脫穎而出。
以下這8個工具,從代碼構建到錯誤擠壓,覆蓋java開發的全域。學習這些工具可以幫助你改善代碼質量,成為一個更高效的java開發人員。
1.eclipse
盡管intellij idea、netbeans和一些其他的ide正在日益普及,但是有調查表明,eclipse仍然是幾乎半數java開發人員首選的開發環境。 eclipse是ide領域的瑞士軍刀,有著大量定制的接口和無數的插件。它無處不在,后面本文將推薦的其他所有工具都提供eclipse插件。
eclipse的工作流程可分為三個方面:工作臺,工作空間和視角。工作臺作為到ide的出發點。工作空間將項目、文件和配置設置組合在一個單獨的 目錄下。視角定義工具、視圖和有效設置。雖然新手開發人員可能會覺得相比netbeans和intellij idea,eclipse使用起來更難,但eclipse的靈活性,使其成為企業開發的首選ide。
luna,eclipse的最新版本,支持java 8、分屏編輯、新的黑色主題,以及一個功能齊全的命令行終端。
官方網站:https://eclipse.org/
2.gradle
gradle是一個自動化項目工具,建立在apache maven和apache ant的功能上。雖然gradle并不是最流行的構建工具(最流行的是maven,64%的java開發人員會選擇它),但它的普及速度很快。它也可作為默認的android構建工具。
gradle引以為傲的是它的簡單。gradle使用groovy編程語言,與maven和ant使用xml語法截然相反。一個基本的gradle構建文件由一行簡單的代碼組成:
apply plugin: 'java'.
下面的命令會生成一個gradle構建文件,創建項目文件的目錄樹,并附帶一個項目便攜式gradle封裝:
$ gradle init --type java-library
gradle還有可用于添加新的語言,生成支持ide的項目文件,構建本地二進制文檔,檢查依賴性更新等等的插件。
想要了解更多信息,請參見gradle的java / jvm入門指南。
官方網站:https://gradle.org/
3.javadoc
javadoc是oracle提供的文檔生成器。它可以將特殊格式的注釋解析為html文檔。以下截圖就是javadoc生成的java se 8 api規范:
javadoc注釋使用開放標簽、關閉標簽,以及一個或多個描述性標簽的格式。開放式標簽類似于標準java多行注釋標記,使用兩個星號的除外。javadoc也解析普通的html標簽。
javadoc自動格式化標簽和關鍵字,除非另有規定。javadoc廣泛使用超鏈接,允許你參考和鏈接到代碼的不同區域。許多ide——包括 eclipse——可以自動添加javadoc注釋模塊到變量、類和方法中。支持maven、gradle和ant的插件在編譯代碼的同時也可以構建 javadoc html。
想要了解更多信息,請參閱oracle關于如何為javadoc工具寫文檔注釋的文章。
官方網站:http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html
4.junit
junit是用于編寫和運行單元測試的開源框架。一個基本的junit測試包括測試類、測試方法、以及執行測試的功能。 junit使用標注來確定測試如何構造和運行。例如,如果你的程序有一個類叫做mathclass,具有乘法和除法的方法,你可以創建junit測試來檢 查不符合預期的值。輸入數字2和5到乘法方法,你希望得到的結果為10。當輸入0作為除法方法的第二個參數時,你會期望給出一個數字計算異常的警告因為除 數不能為0:
@test標注規定,mathclass方法是一個測試用例。 在junit提供額外的標注,比如@before,這樣你就可以在測試運行之前設置環境。 junit還可以設置規則用于定義測試方法的行為。例如,temporaryfolder規則使得一旦測試完成,由測試創建的文件或文件夾就會被刪除。
想要了解更多信息,請參考junit入門。 此外還有使用junit單元測試的教程。
官方網站:http://junit.org/
5.cobertura
cobertura可用于分析java代碼的測試覆蓋率。cobertura根據沒有被測試覆蓋的代碼生成基于html的報告。
cobertura提供可用于插裝、檢查和測試代碼的工具。通過監控可測試的代碼,cobertura允許你使用你選擇的測試框架,甚至不需要測試框架就可以運行程序。
cobertura根據行、分支和程序包三個方面給出代碼覆蓋報告。每個類別都有一個可自定義的閾值,如果覆蓋面低于閾值,就會觸發警告。cobertura還集成了maven和gradle 的自動檢測功能。
mkyong.com提供了一個將cobertura與maven整合的示例。
官方網站:http://cobertura.github.io/cobertura/
6.findbugs
findbugs是一個匹配編譯代碼模式,而非使用bug數據庫的工具。當提供源代碼時,findbugs還可高亮顯示檢測出bug的代碼行。
在它的3.0.1版本中,findbugs繼續保持著數以百計的bug描述。根據bug的嚴重程度,findbugs將bug分為四個水平:相關 的,令人困擾的,可怕的,以及最可怕的。除了圖形用戶界面,findbugs還提供一個命令行界面,ant任務,以及eclipse插件。
官方網站:http://findbugs.sourceforge.net/
7.visualvm
包含在jdk中的visualvm是監控和審查java應用程序性能的工具。 visualvm檢測并重視活躍的jvm實例來檢索有關進程的診斷信息。
visualvm可以很容易地實時診斷性能問題。它提供了全套的分析工具,包括jconsole、jstack、jmap、jinfo和jstat等。此外,你還可以對jvm做一個快照,這樣以后在任何時都能審查。
官方網站:http://visualvm.java.net/
8.groovy
groovy是一種編程語言,通過添加新的關鍵字,自動導入常用的類,以及可選類型變量聲明,既簡化又擴展了java。
groovy的核心優勢之一是它的腳本功能。類可以被編譯為java字節碼或使用groovy shell動態執行。groovy的java基礎使得它相較于jython和jruby更容易為java開發人員所接受。
想要了解更多信息,請參見groovy的入門指南。
官方網站:http://www.groovy-lang.org/
其他選擇
java這個大世界中正在不斷涌現新的工具、實用程序和庫。如果你的首選工具沒能進入上述名單,歡迎分享。