Java開發(fā)者常常都會(huì)想辦法如何更快地編寫Java代碼董瞻,讓編程變得更加輕松。目前峻村,市面上涌現(xiàn)出越來越多的高效編程工具麸折。所以,以下總結(jié)了一系列工具列表粘昨,其中包含了大多數(shù)開發(fā)人員已經(jīng)使用垢啼、正在使用或?qū)硪欢〞?huì)用到的高效工具窜锯。
1、測試
JUnit是一個(gè)Java語言的單元測試框架芭析,用于編寫和運(yùn)行可重復(fù)的測試锚扎。它為測試預(yù)期結(jié)果提供斷言,為共享的常用測試數(shù)據(jù)提供測試裝置(test fixtures)馁启,以及運(yùn)行測試的測試者(test runners)驾孔。
TestNG是受到了JUnit的啟發(fā)開發(fā)而成,但同時(shí)還具有一些新功能惯疙,所以相對(duì)而言翠勉,TestNG更加強(qiáng)大也更便于使用,如注解(annotations)霉颠、靈活的測試配置对碌、數(shù)據(jù)驅(qū)動(dòng)的測試和參數(shù)支持,以及強(qiáng)大的執(zhí)行模型蒿偎。它涵蓋了單元測試朽们、功能、端到端诉位、集成測試华坦,支持各種工具和插件(Eclipse、IDEA不从、Maven等)惜姐。
Arquillian是一個(gè)Java和JVM的測試平臺(tái),主要側(cè)重于集成和功能測試椿息。它去掉了單元測試歹袁,重點(diǎn)關(guān)注真正實(shí)時(shí)環(huán)境下的程序代碼的相互作用。Arquillian為測試配備了容器生命周期管理和典型測試精選寝优。
2条舔、集成
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)建、測試痒给、發(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ā)者編寫爬橡、裝配、測試和運(yùn)行java應(yīng)用程序棒动。它的特點(diǎn)是高度靈活糙申,不會(huì)嚴(yán)格限制Java項(xiàng)目的編碼慣例或目錄布局。
3船惨、應(yīng)用服務(wù)器
Apache Tomcat是一個(gè)開源的Web服務(wù)器和Servlet容器柜裸,由Apache軟件基金會(huì)(ASF)開發(fā)。它實(shí)現(xiàn)了幾個(gè)JavaEE規(guī)范粱锐,包括Java Servlet疙挺、JavaServer Pages(JSP)、Java EL和WebSocket怜浅,提供了一個(gè)可以運(yùn)行Java代碼的HTTP Web服務(wù)器環(huán)境铐然。
GlassFish是由SunMicrosystems的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)營成本桂敛、提高性能、增強(qiáng)可擴(kuò)展性和支持Oracle應(yīng)用組合等的新特性溅潜。
4术唬、質(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)巴碗、單元測試、代碼覆蓋即寒、復(fù)雜代碼橡淆、潛在錯(cuò)誤、注釋母赵、設(shè)計(jì)和架構(gòu)而產(chǎn)生報(bào)告逸爵。
FindBugs也是開源的工具,在LesserGNU Public license許可下發(fā)布凹嘲。它運(yùn)行在Java字節(jié)碼上而不是源代碼师倔,可以識(shí)別和確定潛在錯(cuò)誤的嚴(yán)重程度,如空指針引用周蹭、無限遞歸循環(huán)趋艘、Java庫和死鎖的錯(cuò)誤使用。同時(shí)凶朗,它還可以作為Eclipse瓷胧、NetBeans,IntelliJ IDEA的插件棚愤。
Checkstyle的是一個(gè)開發(fā)工具搓萧,可以幫助程序員堅(jiān)持按編碼標(biāo)準(zhǔn)來編寫Java代碼,會(huì)自動(dòng)啟動(dòng)Java代碼檢查宛畦。它的配置性很強(qiáng)矛绘,能支持幾乎任何的編碼標(biāo)準(zhǔn)。
5刃永、版本控制
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è)完整的版本庫,有完整歷史和完整版本的跟蹤能力定铜、獨(dú)立的網(wǎng)絡(luò)接入或中央服務(wù)器阳液。
6、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)境的插件。
7岔绸、代碼覆蓋工具
JaCoco是衡量和報(bào)告Java代碼覆蓋率的一個(gè)開源工具包理逊。它是由Eclipse公共許可協(xié)議許可,是目前唯一能支持Java 8的字節(jié)代碼覆蓋工具盒揉。
Clover是一個(gè)商業(yè)的代碼覆蓋工具晋被,它提供的指標(biāo)可以讓程序員更好地平衡編程和測試。它在IDE或你的持續(xù)集成系統(tǒng)下運(yùn)行刚盈,還包括能加快測試速度的測試優(yōu)化羡洛。
8、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)橄仍,以最簡潔的方式對(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ù)舀奶、變更暑竟、文件和頁面之間的鏈接和無縫引用斋射。