Java 開發(fā)者常常都會(huì)想辦法如何更快地編寫 Java 代碼闸盔,讓編程變得更加輕松。目前琳省,市面上涌現(xiàn)出越來越多的高效編程工具迎吵。所以,以下總結(jié)了一系列工具列表岛啸,其中包含了大多數(shù)開發(fā)人員已經(jīng)使用钓觉、正在使用或?qū)硪欢〞?huì)用到的高效工具。這份列表名單包括集成開發(fā)環(huán)境坚踩、集成工具荡灾、測(cè)試和質(zhì)量工具等。
1瞬铸、集成開發(fā)環(huán)境
Eclipse是最有名也最廣泛使用的Java集成開發(fā)環(huán)境(IDE)批幌,允許開發(fā)者結(jié)合語言支持和其他功能到任何的默認(rèn)包中,而且Eclipse市場(chǎng)有許多定制和擴(kuò)展的插件嗓节。
IntelliJ已經(jīng)引起了開發(fā)者的“追捧”荧缘,甚至比Eclipse還受寵,有免費(fèi)版和專業(yè)版拦宣。[IntelliJ](http://www.javacodegeeks.com/tutorials/java-tutorials/core-java-tutorials/#IntelliJ IDEA)為眾多Java EE框架提供了針對(duì)框架的編碼幫助和提升生產(chǎn)效率的功能截粗,還有大多數(shù)應(yīng)用服務(wù)器的部署工具信姓。
NetBeans的也屬于IDE類,允許開發(fā)者快速绸罗、簡(jiǎn)便地開發(fā)桌面應(yīng)用意推、移動(dòng)應(yīng)用和Web應(yīng)用。NetBeans是免費(fèi)開源的珊蟀,還擁有全球性的用戶和開發(fā)者社區(qū)菊值。
JDeveloper是Oracle提供的一個(gè)免費(fèi)的集成開發(fā)環(huán)境,它為Oracle融合中間件和融合應(yīng)用產(chǎn)品提供完整的端到端開發(fā)育灸,支持整個(gè)開發(fā)生命周期腻窒。
2、測(cè)試
JUnit是一個(gè)Java語言的單元測(cè)試框架磅崭,用于編寫和運(yùn)行可重復(fù)的測(cè)試儿子。它為測(cè)試預(yù)期結(jié)果提供斷言,為共享的常用測(cè)試數(shù)據(jù)提供測(cè)試裝置(test fixtures)绽诚,以及運(yùn)行測(cè)試的測(cè)試者(test runners)典徊。可以在這里看一下JUnit的教程恩够。
TestNG是受到了JUnit的啟發(fā)開發(fā)而成卒落,但同時(shí)還具有一些新功能,所以相對(duì)而言蜂桶,TestNG更加強(qiáng)大也更便于使用儡毕,如注解(annotations)、靈活的測(cè)試配置扑媚、數(shù)據(jù)驅(qū)動(dòng)的測(cè)試和參數(shù)支持腰湾,以及強(qiáng)大的執(zhí)行模型。它涵蓋了單元測(cè)試疆股、功能费坊、端到端、集成測(cè)試旬痹,支持各種工具和插件(Eclipse附井、IDEA、Maven等)两残。具體內(nèi)容可以參考分別使用 Maven Failsafe 與 TestNG 進(jìn)行單元測(cè)試與集成測(cè)試的文章永毅。
Mockito是一個(gè)mocking框架,幫助開發(fā)者編寫具有簡(jiǎn)潔API的精美測(cè)試人弓。其測(cè)試的可讀性很好沼死,并能產(chǎn)生清晰的驗(yàn)證錯(cuò)誤。使用Mockito還能在執(zhí)行后可以對(duì)交互進(jìn)行問詢崔赌。Mocks是透明的意蛀,所以開發(fā)者可以專注于測(cè)試選定的行為耸别。更多詳情可以參考mockito的相關(guān)文章。
Arquillian是一個(gè)Java和JVM的測(cè)試平臺(tái)浸间,主要側(cè)重于集成和功能測(cè)試太雨。它去掉了單元測(cè)試,重點(diǎn)關(guān)注真正實(shí)時(shí)環(huán)境下的程序代碼的相互作用魁蒜。Arquillian為測(cè)試配備了容器生命周期管理和典型測(cè)試精選。
3吩翻、集成
Apache Maven是一個(gè)非常著名的軟件項(xiàng)目管理和綜合工具兜看。基于項(xiàng)目對(duì)象模型(POM)的概念狭瞎,它的信息中心管理著項(xiàng)目的構(gòu)建细移、報(bào)告和文檔。Maven提供了一個(gè)統(tǒng)一的構(gòu)建系統(tǒng)熊锭、項(xiàng)目信息和最佳的開發(fā)實(shí)踐指導(dǎo)弧轧,并且支持新功能的透明遷移。
Gradle是一個(gè)開源的自動(dòng)化構(gòu)建系統(tǒng)碗殷。Gradle可以自動(dòng)構(gòu)建精绎、測(cè)試、發(fā)布锌妻、部署代乃,還有多種軟件包或其他類型項(xiàng)目,如生成靜態(tài)網(wǎng)站仿粹。Gradle結(jié)合了Ant的能力和靈活性搁吓,以及Maven的依賴管理和約定,形成了一種高效的構(gòu)建方式吭历。
Apache Ant是一個(gè)開源的Apache項(xiàng)目堕仔,經(jīng)Apache軟件許可發(fā)布。它由多種內(nèi)置任務(wù)而成晌区,允許開發(fā)者編寫摩骨、裝配、測(cè)試和運(yùn)行java應(yīng)用程序契讲。它的特點(diǎn)是高度靈活仿吞,不會(huì)嚴(yán)格限制Java項(xiàng)目的編碼慣例或目錄布局。
Apache Ivy是一種流行的依賴管理工具捡偏,注重靈活性和簡(jiǎn)單性唤冈。它是Apache Ant項(xiàng)目的一個(gè)子項(xiàng)目,而Ivy用來解決項(xiàng)目依賴項(xiàng)银伟。外部的XML文件定義項(xiàng)目依賴項(xiàng)你虹,并列出構(gòu)建項(xiàng)目的所需資源绘搞。然后Ivy從artifact 存儲(chǔ)庫(kù)(artifact repository)中下載資源,它具有良好的靈活性和可配置性傅物。Apache Ivy 是由Apache Apache Ant集成的夯辖,因此將使Apache Maven的依賴管理優(yōu)勢(shì)也帶到Apache Ant構(gòu)建文件中,為那些已經(jīng)使用Apache Ant且不想遷移到Apache Maven的開發(fā)者提供了便利董饰。
4蒿褂、應(yīng)用服務(wù)器
Apache Tomcat是一個(gè)開源的Web服務(wù)器和Servlet容器,由Apache軟件基金會(huì)(ASF)開發(fā)卒暂。它實(shí)現(xiàn)了幾個(gè)Java EE規(guī)范啄栓,包括Java Servlet、JavaServer Pages(JSP)也祠、Java EL和WebSocket昙楚,提供了一個(gè)可以運(yùn)行Java代碼的HTTP Web服務(wù)器環(huán)境。想要了解更多請(qǐng)點(diǎn)擊诈嘿。
WildFly堪旧,其前身是JBoss AS或Jboss,是一個(gè)由Jboss開發(fā)的應(yīng)用服務(wù)器奖亚,現(xiàn)在由紅帽在開發(fā)維護(hù)淳梦。它是用Java編寫的,并且實(shí)現(xiàn)了Java平臺(tái)和企業(yè)版(Java EE)規(guī)范遂蛀。WildFly是可以在多個(gè)平臺(tái)上運(yùn)行的免費(fèi)開源工具谭跨。
GlassFish是由Sun Microsystems的Java EE平臺(tái)起步,現(xiàn)在由Oracle公司贊助的開源應(yīng)用服務(wù)器項(xiàng)目李滴。支持的版本叫做Oracle GlassFish應(yīng)用服務(wù)器瘟裸。 GlassFish是免費(fèi)軟件祭衩,經(jīng)兩個(gè)免費(fèi)的軟件許可證批準(zhǔn):通用開發(fā)與發(fā)布許可(CDDL)和GNU通用公共許可證(GPL)久脯。
Oracle WebLogic 服務(wù)器是一個(gè)Java EE應(yīng)用服務(wù)器锋八,目前由Oracle公司開發(fā),用于構(gòu)建和部署企業(yè)應(yīng)用Java EE芹助,支持降低運(yùn)營(yíng)成本堂湖、提高性能、增強(qiáng)可擴(kuò)展性和支持Oracle應(yīng)用組合等的新特性状土。
5无蜂、Web應(yīng)用測(cè)試
Apache JMeter是開源的Apache項(xiàng)目,實(shí)際上是一個(gè)專為負(fù)載功能測(cè)試和性能測(cè)試的Java應(yīng)用蒙谓。它最初的設(shè)計(jì)是用于Web應(yīng)用斥季,但現(xiàn)在已擴(kuò)展到其他測(cè)試功能。它可以測(cè)試靜態(tài)和動(dòng)態(tài)資源性能,模擬一個(gè)或多個(gè)服務(wù)器負(fù)載來測(cè)試它的強(qiáng)度或者分析不同負(fù)載類型下的整體性能酣倾《娼遥可以查看關(guān)于Jmeter的更多詳情。
SoapUI是一個(gè)免費(fèi)的開源跨平臺(tái)的功能測(cè)試解決方案躁锡。它提供了一個(gè)圖形界面和企業(yè)級(jí)功能午绳,允許創(chuàng)建和執(zhí)行自動(dòng)化功能、回歸映之、符合性和負(fù)載測(cè)試拦焚。SoapUI在一個(gè)測(cè)試環(huán)境下提供了完整的測(cè)試覆蓋率,而且支持所有的標(biāo)準(zhǔn)協(xié)議和技術(shù)杠输。
6耕漱、質(zhì)量分析
SonarQube是一個(gè)開源的平臺(tái),現(xiàn)已成為代碼質(zhì)量管理系統(tǒng)的世界領(lǐng)先者抬伺,并且因代碼質(zhì)量的持續(xù)檢查為眾人所知。除了Java外灾梦,它還支持大多數(shù)的語言峡钓,而且可以用作Android開發(fā),它集成了大多數(shù)的持續(xù)集成工具若河。SonarQube會(huì)為重復(fù)代碼能岩、編碼標(biāo)準(zhǔn)、單元測(cè)試萧福、代碼覆蓋拉鹃、復(fù)雜代碼、潛在錯(cuò)誤鲫忍、注釋膏燕、設(shè)計(jì)和架構(gòu)而產(chǎn)生報(bào)告。
FindBugs也是開源的工具悟民,在Lesser GNU Public license許可下發(fā)布坝辫。它運(yùn)行在Java字節(jié)碼上而不是源代碼,可以識(shí)別和確定潛在錯(cuò)誤的嚴(yán)重程度射亏,如空指針引用近忙、無限遞歸循環(huán)、Java庫(kù)和死鎖的錯(cuò)誤使用智润。同時(shí)及舍,它還可以作為Eclipse、NetBeans窟绷,IntelliJ IDEA的插件锯玛。可以參考FindBugs Eclipse實(shí)例钾麸。
PMD是一個(gè)源代碼分析器更振。它可以檢測(cè)到常見的編程錯(cuò)誤炕桨,如未使用的變量、空的catch塊肯腕、不必要的對(duì)象創(chuàng)建等等献宫。它支持除了包括Java的大多數(shù)語言,還包含CPD实撒、復(fù)制粘貼探測(cè)器姊途。
Checkstyle的是一個(gè)開發(fā)工具,可以幫助程序員堅(jiān)持按編碼標(biāo)準(zhǔn)來編寫Java代碼知态,會(huì)自動(dòng)啟動(dòng)Java代碼檢查捷兰。它的配置性很強(qiáng),能支持幾乎任何的編碼標(biāo)準(zhǔn)负敏。
7贡茅、版本控制
Apache Subversion是眾所周知的SVN工具,是一個(gè)軟件版本和版本控制系統(tǒng)其做,在一個(gè)開源許可下發(fā)布顶考。目前,它是由一個(gè)Apache軟件基金會(huì)的項(xiàng)目開發(fā)妖泄,也是全球性開發(fā)者和用戶社區(qū)的一部分驹沿。
Git是一個(gè)免費(fèi)開源的分布式版本控制系統(tǒng),能夠提高大小事務(wù)的速度和效率蹈胡。相對(duì)于其他的配置管理工具渊季,Git的特色在于提供廉價(jià)的局部分支、便利的暫存區(qū)和多個(gè)工作流罚渐。每個(gè)Git工作目錄是一個(gè)完整的版本庫(kù)却汉,有完整歷史和完整版本的跟蹤能力、獨(dú)立的網(wǎng)絡(luò)接入或中央服務(wù)器搅轿〔≌牵可以查看更多Git的文章。
8璧坟、持續(xù)集成
Jenkins是一個(gè)屢獲殊榮的應(yīng)用程序既穆,能夠監(jiān)視重復(fù)的工作,從建立一個(gè)軟件項(xiàng)目到由cron運(yùn)行的作業(yè)雀鹃。它的基本功能是不斷建立和測(cè)試軟件項(xiàng)目幻工,使得開發(fā)者能更容易地將變更集成到項(xiàng)目中,使用戶更容易獲得新的構(gòu)建黎茎。Jenkins還可以監(jiān)控外部運(yùn)行任務(wù)的執(zhí)行囊颅,如cron jobs,即使是運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上的任務(wù)。
Apache Continuum是一個(gè)企業(yè)級(jí)持續(xù)集成服務(wù)器踢代。提供的特性包括:自動(dòng)構(gòu)建盲憎、發(fā)布管理、基于角色的權(quán)限管理胳挎,以及能與其它流行構(gòu)建工具和源代碼管理系統(tǒng)相集成饼疙。
Hudson是一個(gè)用Java編寫的持續(xù)集成(CI)工具,在應(yīng)用服務(wù)器上運(yùn)行慕爬。它支持各種SCM工具窑眯,如Subversion、Git医窿,可以執(zhí)行Apache Ant和Apache Maven項(xiàng)目磅甩,以及任意shell腳本和Windows批處理命令。它監(jiān)視重復(fù)任務(wù)的執(zhí)行姥卢,如建立一個(gè)軟件項(xiàng)目或由cron運(yùn)行的作業(yè)卷要。
9、Java 應(yīng)用分析
在為分析Java應(yīng)用開發(fā)最創(chuàng)新的智能工具方面独榴,YourKit Java分析器是技術(shù)的領(lǐng)頭羊却妨。你可以在CPU和內(nèi)存分析上都使用YourKit解決方案,還可以以最大生產(chǎn)率和零開銷來分析大型應(yīng)用括眠。同時(shí),Java分析器還有幾個(gè)剛提出的分析創(chuàng)新倍权,為其在各大小型企業(yè)的專業(yè)Java開發(fā)者獲得了當(dāng)之無愧的人氣掷豺。
JProfiler是商業(yè)許可的Java分析工具,對(duì)于分析性能瓶頸薄声、內(nèi)存泄漏当船、CPU負(fù)載和解決線程問題等方面非常有效,它支持在同一臺(tái)機(jī)器或遠(yuǎn)程機(jī)器上進(jìn)行分析默辨。用戶可以看到活躍的總字節(jié)德频、實(shí)例、線程缩幸、類和垃圾回收器活動(dòng)的可視化表示壹置。它可以作為一個(gè)獨(dú)立應(yīng)用使用,也可以作為Eclipse軟件開發(fā)環(huán)境的插件表谊。
OneAPM For Java 可以展示業(yè)務(wù)代碼的trace钞护,實(shí)時(shí)展示緩慢的sql語句和nosql操作,還可以方便地監(jiān)控JVM爆办∧压荆可以智能探知 Java 應(yīng)用之間的相互調(diào)用關(guān)系,通過串聯(lián)復(fù)雜的后臺(tái)組件,動(dòng)態(tài)生成 J2EE 應(yīng)用整體架構(gòu)視圖余佃。通過拓?fù)鋱D直觀了解分布式或 SOA 架構(gòu)應(yīng)用的運(yùn)行狀態(tài)暮刃,準(zhǔn)確定位系統(tǒng)問題。同時(shí)監(jiān)控后臺(tái)事務(wù)和 Web 事務(wù)爆土。
10椭懊、代碼覆蓋工具
JaCoco是衡量和報(bào)告Java代碼覆蓋率的一個(gè)開源工具包。它是由Eclipse公共許可協(xié)議許可雾消,是目前唯一能支持Java 8的字節(jié)代碼覆蓋工具灾搏。
Clover是一個(gè)商業(yè)的代碼覆蓋工具,它提供的指標(biāo)可以讓程序員更好地平衡編程和測(cè)試立润。它在IDE或你的持續(xù)集成系統(tǒng)下運(yùn)行狂窑,還包括能加快測(cè)試速度的測(cè)試優(yōu)化。
11桑腮、Bug跟蹤
JIRA是幫助團(tuán)隊(duì)規(guī)劃和構(gòu)建優(yōu)秀產(chǎn)品的跟蹤工具泉哈。成千上萬的團(tuán)隊(duì)選擇JIRA來捕捉和組織問題、分配工作破讨、跟進(jìn)團(tuán)隊(duì)活動(dòng)丛晦。它是付費(fèi)工具,但有一個(gè)7天的免費(fèi)試用期提陶。
Trac是一個(gè)針對(duì)軟件開發(fā)項(xiàng)目開發(fā)的完善wiki和問題的跟蹤系統(tǒng)烫沙,以最簡(jiǎn)潔的方式對(duì)Web軟件項(xiàng)目進(jìn)行管理。它還可以幫助開發(fā)人員編寫優(yōu)秀的軟件隙笆,提供了對(duì)Subversion和Git(或其他版本控制系統(tǒng))的接口锌蓄,集成了wiki和便捷報(bào)告程序。Trac允許wiki在問題描述和提交信息中標(biāo)記撑柔,還創(chuàng)建了bug瘸爽、任務(wù)、變更铅忿、文件和頁面之間的鏈接和無縫引用剪决。
12、文檔生成工具
Javadoc是Oracle公司用來從Java源代碼中生成HTML格式API文檔的生成工具檀训。IDE可以自動(dòng)生成HTML代碼柑潦。許多文件編輯器幫助用戶生成Javadoc源,并將 Javadoc 信息當(dāng)作程序員的內(nèi)部參考峻凫。Javadoc也提供了用于創(chuàng)建doclets和taglets的API妒茬,讓你能夠進(jìn)一步分析 Java 應(yīng)用的結(jié)構(gòu)。
Document! X是自動(dòng)化的Java文檔工具和完整的文檔編寫環(huán)境的結(jié)合體蔚晨,可以用來為你的Java項(xiàng)目創(chuàng)建準(zhǔn)確的專業(yè)文檔乍钻。它會(huì)自動(dòng)將生成的文檔集成在Java IDEs中肛循,同時(shí)還能給庫(kù)、命名空間银择、類多糠、接口、構(gòu)造函數(shù)浩考、方法夹孔、屬性和字段生成文檔頁面。
以上就是為Java開發(fā)者提供的一系列可以提高編程效率的工具析孽,盡情試用吧搭伤!以后,媽媽再也不用擔(dān)心你的“高效開發(fā)”了袜瞬!
(編譯自:[http://www.javacodegeeks.com/2015/02/java-development-tools-programming-boost.html](convenient reporting facilities))
OneAPM 為您提供端到端的 Java 應(yīng)用性能解決方案怜俐,我們支持所有常見的 Java 框架及應(yīng)用服務(wù)器,助您快速發(fā)現(xiàn)系統(tǒng)瓶頸邓尤,定位異常根本原因拍鲤。分鐘級(jí)部署,即刻體驗(yàn)汞扎,Java 監(jiān)控從來沒有如此簡(jiǎn)單季稳。想閱讀更多技術(shù)文章,請(qǐng)?jiān)L問 OneAPM 官方技術(shù)博客澈魄。
本文轉(zhuǎn)自 OneAPM 官方博客