Java資源參考寶典(中文版)
很多程序員應(yīng)該記得 GitHub
上有一個 Awesome-XXX
系列的資源整理。awesome-java 就是 akullpp 發(fā)起維護的 Java
資源列表,內(nèi)容包括:構(gòu)建工具、數(shù)據(jù)庫、框架、模板、安全、代碼分析、日志、第三方庫、書籍、Java 站點等等。
Awesome 系列雖然挺全,但基本只對收錄的資源做了極為簡要的介紹,如果有更詳細(xì)的中文介紹,對相應(yīng)開發(fā)者的幫助會更大。
目錄
古董級工具
構(gòu)建工具
字節(jié)碼操作
集群管理
代碼分析
編譯器生成工具
外部配置工具
約束滿足問題求解程序
持續(xù)集成
CSV解析
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)庫
時間日期工具庫
依賴注入
開發(fā)流程增強工具
分布式應(yīng)用
分布式數(shù)據(jù)庫
發(fā)布
文檔處理工具
函數(shù)式編程
游戲開發(fā)
GUI
高性能計算
IDE
圖像處理
JSON
JVM與JDK
基于JVM的語言
日志
機器學(xué)習(xí)
消息傳遞
雜項
應(yīng)用監(jiān)控工具
原生開發(fā)庫
自然語言處理
網(wǎng)絡(luò)
ORM
PDF
性能分析
響應(yīng)式開發(fā)庫
REST框架
科學(xué)計算與分析
搜索引擎
安全
序列化
應(yīng)用服務(wù)器
模板引擎
測試
通用工具庫
網(wǎng)絡(luò)爬蟲
Web框架
業(yè)務(wù)流程管理套件
古董級工具
這些工具伴隨著Java一起出現(xiàn),在各自輝煌之后還在一直使用。
Apache Ant:基于XML的構(gòu)建管理工具。官網(wǎng)
cglib:字節(jié)碼生成庫。官網(wǎng)
GlassFish:應(yīng)用服務(wù)器,由Oracle贊助支持的Java EE參考實現(xiàn)。官網(wǎng)
Hudson:持續(xù)集成服務(wù)器,目前仍在活躍開發(fā)。官網(wǎng)
JavaServer Faces:Mojarra是JSF標(biāo)準(zhǔn)的一個開源實現(xiàn),由Oracle開發(fā)。官網(wǎng)
JavaServer Pages:支持自定義標(biāo)簽庫的網(wǎng)站通用模板庫。官網(wǎng)
Liquibase:與具體數(shù)據(jù)庫獨立的追蹤、管理和應(yīng)用數(shù)據(jù)庫Scheme變化的工具。官網(wǎng)
構(gòu)建工具
構(gòu)建及應(yīng)用依賴關(guān)系處理工具。
Apache Maven:Maven是一款聲明式構(gòu)建及依賴管理工具,采用約定優(yōu)于配置方式進行管理。相對Apache Ant更推薦使用Maven,前者采用了過程式管理,維護相對困難。官網(wǎng)
Bazel:來自Google的構(gòu)建工具,可以快速、可靠地構(gòu)建代碼。官網(wǎng)
Gradle:使用Groovy(非XML)進行增量構(gòu)建,可以很好地與Maven依賴管理配合工作。官網(wǎng)
Buck:Facebook構(gòu)建工具。官網(wǎng)
字節(jié)碼操作
編程方式操作字節(jié)碼的開發(fā)庫。
ASM:通用底層字節(jié)碼操作和分析開發(fā)庫。官網(wǎng)
Byte Buddy:使用流式API進一步簡化字節(jié)碼生成。官網(wǎng)
Byteman:在運行時通過DSL(規(guī)則)操作字節(jié)碼進行測試和故障排除。官網(wǎng)
Javassist:一個簡化字節(jié)碼編輯嘗試。官網(wǎng)
集群管理
在集群內(nèi)動態(tài)管理應(yīng)用程序的框架。
Apache Aurora:Apache Aurora是一個Mesos框架,用于長時間運行服務(wù)和定時任務(wù)(cron job)。官網(wǎng)
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、后臺運行、調(diào)度作業(yè)和一次性任務(wù)。官網(wǎng)
代碼分析
測量代碼指標(biāo)和質(zhì)量工具。
Checkstyle:代碼編寫規(guī)范和標(biāo)準(zhǔn)靜態(tài)分析工具。官網(wǎng)
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網(wǎng)
FindBugs:通過字節(jié)碼靜態(tài)分析查找隱藏bug。官網(wǎng)
jQAssistant:使用基于Neo4J查詢語言進行代碼靜態(tài)分析。官網(wǎng)
PMD:對源代碼分析查找不良的編程習(xí)慣。官網(wǎng)
SonarQube:通過插件集成其它分析組件,對過去一段時間內(nèi)的數(shù)據(jù)進行統(tǒng)計。官網(wǎng)
編譯器生成工具
用來創(chuàng)建解析器、解釋器或編譯器的框架。
ANTLR:復(fù)雜的全功能自頂向下解析框架。官網(wǎng)
JavaCC:JavaCC是更加專門的輕量級工具,易于上手且支持語法超前預(yù)測。官網(wǎng)
外部配置工具
支持外部配置的開發(fā)庫。
config:針對JVM語言的配置庫。官網(wǎng)
owner:減少冗余配置屬性。官網(wǎng)
約束滿足問題求解程序
幫助解決約束滿足問題的開發(fā)庫。
Choco:可直接使用的約束滿足問題求解程序,使用了約束規(guī)劃技術(shù)。官網(wǎng)
JaCoP:為FlatZinc語言提供了一個接口,可以執(zhí)行MiniZinc模型。官網(wǎng)
OptaPlanner:業(yè)務(wù)規(guī)劃與資源調(diào)度優(yōu)化求解程序。官網(wǎng)
Sat4J:邏輯代數(shù)與優(yōu)化問題最先進的求解程序。官網(wǎng)
持續(xù)集成
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產(chǎn)品??梢赃x擇開源許可,也可以購買商業(yè)版。官網(wǎng)
CircleCI:提供托管服務(wù),可以免費試用。官網(wǎng)
Codeship:提供托管服務(wù),提供有限的免費模式。官網(wǎng)
fabric8:容器集成平臺。官網(wǎng)
Go:ThoughtWork開源解決方案。官網(wǎng)
Jenkins:支持基于服務(wù)器的部署服務(wù)。官網(wǎng)
TeamCity:JetBrain的持續(xù)集成解決方案,有免費版。官網(wǎng)
Travis:通常用作開源項目的托管服務(wù)。官網(wǎng)
Buildkite: 持續(xù)集成工具,用簡單的腳本就能設(shè)置pipeline,而且能快速構(gòu)建,可以免費試用。官網(wǎng)
CSV解析
簡化CSV數(shù)據(jù)讀寫的框架與開發(fā)庫
uniVocity-parsers:速度最快功能最全的CSV開發(fā)庫之一,同時支持TSV與固定寬度記錄的讀寫。官網(wǎng)
數(shù)據(jù)庫
簡化數(shù)據(jù)庫交互的相關(guān)工具。
Apache Phoenix:HBase針對低延時應(yīng)用程序的高性能關(guān)系數(shù)據(jù)庫層。官網(wǎng)
Crate:實現(xiàn)了數(shù)據(jù)同步、分片、縮放、復(fù)制的分布式數(shù)據(jù)存儲。除此之外還可以使用基于SQL的語法跨集群查詢。官網(wǎng)
Flyway:簡單的數(shù)據(jù)庫遷移工具。官網(wǎng)
H2:小型SQL數(shù)據(jù)庫,以可以作為內(nèi)存數(shù)據(jù)庫使用著稱。官網(wǎng)
HikariCP:高性能JDBC連接工具。官網(wǎng)
JDBI:便捷的JDBC抽象。官網(wǎng)
jOOQ:為SQL schema生成typesafe代碼。官網(wǎng)
MapDB:以磁盤或堆內(nèi)存中并發(fā)集合為基礎(chǔ)的嵌入式數(shù)據(jù)庫引擎。官網(wǎng)
Presto:針對大數(shù)據(jù)的分布式SQL查詢引擎。官網(wǎng)
Querydsl:Typesafe統(tǒng)一查詢。官網(wǎng)
數(shù)據(jù)結(jié)構(gòu)
Apache Parquet:Google Dremel論文中發(fā)布的基于組裝算法的列式(Columnar)存儲格式。官網(wǎng)
Protobuf:Google數(shù)據(jù)交換格式。官網(wǎng)
SBE:簡單二進制編碼,是最快速的消息格式之一。官網(wǎng)
Wire:整潔輕量級協(xié)議緩存。官網(wǎng)
時間日期工具庫
處理時間和日期的開發(fā)庫。
Joda-Time:在Java 8發(fā)布前,Joda-Time是實際使用的時間日期庫標(biāo)準(zhǔn)。官網(wǎng)
Time4J:高級時間和日期庫。官網(wǎng)
ThreeTen:JSR-310實現(xiàn),為JDK提供更具特點的時間和日期API。官網(wǎng)
依賴注入
幫實現(xiàn)依賴翻轉(zhuǎn)范式的開發(fā)庫。 官網(wǎng)
Apache DeltaSpike:CDI擴展框架。官網(wǎng)
Dagger2:編譯時注入框架,不需要使用反射。官網(wǎng)
Guice:可以匹敵Dagger的輕量級注入框架。官網(wǎng)
HK2:輕量級動態(tài)依賴注入框架。官網(wǎng)
開發(fā)流程增強工具
從最基本的層面增強開發(fā)流程。
ADT4J:針對代數(shù)數(shù)據(jù)類型的JSR-269代碼生成器。官網(wǎng)
AspectJ:面向切面編程(AOP)的無縫擴展。官網(wǎng)
Auto:源代碼生成器集合。官網(wǎng)
DCEVM:通過修改JVM在運行時支持對已加載的類進行無限次重定義。官網(wǎng)
HotswapAgent:支持無限次重定義運行時類與資源。官網(wǎng)
Immutables:類似Scala的條件類。官網(wǎng)
JHipster:基于Spring Boot與AngularJS應(yīng)用程序的Yeoman源代碼生成器。官網(wǎng)
JRebel:無需重新部署,可以即時重新加載代碼與配置的商業(yè)軟件。官網(wǎng)
Lombok:減少冗余的代碼生成器。官網(wǎng)
Spring Loaded:類重載代理。官網(wǎng)
vert.x:多語言事件驅(qū)動應(yīng)用框架。官網(wǎng)
分布式應(yīng)用
用來編寫分布式容錯應(yīng)用的開發(fā)庫和框架。
Akka:用來編寫分布式容錯并發(fā)事件驅(qū)動應(yīng)用程序的工具和運行時。官網(wǎng)
Apache Storm:實時計算系統(tǒng)。官網(wǎng)
Apache ZooKeeper:針對大型分布式系統(tǒng)的協(xié)調(diào)服務(wù),支持分布式配置、同步和名稱注冊。官網(wǎng)
Hazelcast:高可擴展內(nèi)存數(shù)據(jù)網(wǎng)格。官網(wǎng)
Hystrix:提供延遲和容錯。官網(wǎng)
JGroups:提供可靠的消息傳遞和集群創(chuàng)建的工具。官網(wǎng)
Orbit:支持虛擬角色(Actor),在傳統(tǒng)角色的基礎(chǔ)上增加了另外一層抽象。官網(wǎng)
Quasar:為JVM提供輕量級線程和角色。官網(wǎng)
分布式數(shù)據(jù)庫
對應(yīng)用程序而言,在分布式系統(tǒng)中的數(shù)據(jù)庫看起來就像是只有一個數(shù)據(jù)源。
Apache Cassandra:列式數(shù)據(jù)庫,可用性高且沒有單點故障。官網(wǎng)
Apache HBase:針對大數(shù)據(jù)的Hadoop數(shù)據(jù)庫。官網(wǎng)
Druid:實時和歷史OLAP數(shù)據(jù)存儲,在聚集查詢和近似查詢方面表現(xiàn)不俗。官網(wǎng)
Infinispan:針對緩存的高并發(fā)鍵值對數(shù)據(jù)存儲。官網(wǎng)
發(fā)布
以本機格式發(fā)布應(yīng)用程序的工具。
Bintray:發(fā)布二進制文件版本控制工具。可以于Maven或Gradle一起配合使用。提供開源免費版本和幾種商業(yè)收費版本。官網(wǎng)
Central Repository:最大的二進制組件倉庫,面向開源社區(qū)提供免費服務(wù)。Apache Maven默認(rèn)使用Central?官網(wǎng)Repository,也可以在所有其他構(gòu)建工具中使用。
IzPack:為跨平臺部署建立創(chuàng)作工具(Authoring Tool)。官網(wǎng)
JitPack:打包GitHub倉庫的便捷工具??筛鶕?jù)需要構(gòu)建Maven、Gradle項目,發(fā)布可立即使用的組件。官網(wǎng)
Launch4j:將JAR包裝為輕量級本機Windows可執(zhí)行程序。官網(wǎng)
Nexus:支持代理和緩存功能的二進制管理工具。官網(wǎng)
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發(fā)布文件。官網(wǎng)
文檔處理工具
處理Office文檔的開發(fā)庫。
Apache POI:支持OOXML規(guī)范(XLSX、DOCX、PPTX)以及OLE2規(guī)范(XLS、DOC、PPT)。官網(wǎng)
documents4j:使用第三方轉(zhuǎn)換器進行文檔格式轉(zhuǎn)換,轉(zhuǎn)成類似MS Word這樣的格式。官網(wǎng)
jOpenDocument:處理OpenDocument格式(由Sun公司提出基于XML的文檔格式)。官網(wǎng)
函數(shù)式編程
函數(shù)式編程支持庫。
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網(wǎng)
Fugue:Guava的函數(shù)式編程擴展。官網(wǎng)
Functional Java:實現(xiàn)了多種基礎(chǔ)和高級編程抽象,用來輔助面向組合開發(fā)(composition-oriented development)。官網(wǎng)
Javaslang:一個函數(shù)式組件庫,提供持久化數(shù)據(jù)類型和函數(shù)式控制結(jié)構(gòu)。官網(wǎng)
jOOλ:旨在填補Java 8 lambda差距的擴展,提供了眾多缺失的類型和一組豐富的順序流API。官網(wǎng)
游戲開發(fā)
游戲開發(fā)框架。
jMonkeyEngine:現(xiàn)代3D游戲開發(fā)引擎。官網(wǎng)
libGDX:全面的跨平臺高級框架。官網(wǎng)
LWJGL:對OpenGL/CL/AL等技術(shù)進行抽象的健壯框架。官網(wǎng)
GUI
現(xiàn)代圖形化用戶界面開發(fā)庫。
JavaFX:Swing的后繼者。官網(wǎng)
Scene Builder:開發(fā)JavaFX應(yīng)用的可視化布局工具。官網(wǎng)
高性能計算
涵蓋了從集合到特定開發(fā)庫的高性能計算相關(guān)工具。
Agrona:高性能應(yīng)用中常見的數(shù)據(jù)結(jié)構(gòu)和工具方法。官網(wǎng)
Disruptor:線程間消息傳遞開發(fā)庫。官網(wǎng)
fastutil:快速緊湊的特定類型集合(Collection)。官網(wǎng)
GS Collections:受Smalltalk啟發(fā)的集合框架。官網(wǎng)
HPPC:基礎(chǔ)類型集合。官網(wǎng)
Javolution:實時和嵌入式系統(tǒng)的開發(fā)庫。官網(wǎng)
JCTools:JDK中缺失的并發(fā)工具。官網(wǎng)
Koloboke:Hash set和hash map。官網(wǎng)
Trove:基礎(chǔ)類型集合。官網(wǎng)
High-scale-lib:Cliff Click 個人開發(fā)的高性能并發(fā)庫官網(wǎng)
IDE
簡化開發(fā)的集成開發(fā)環(huán)境。
Eclipse:老牌開源項目,支持多種插件和編程語言。官網(wǎng)
IntelliJ IDEA:支持眾多JVM語言,是安卓開發(fā)者好的選擇。商業(yè)版主要針對企業(yè)客戶。官網(wǎng)
NetBeans:為多種技術(shù)提供集成化支持,包括Java SE、Java EE、數(shù)據(jù)庫訪問、HTML5等。官網(wǎng)
Scala IDE:一款基于Eclipse開源平臺打造的Scala集成開發(fā)環(huán)境。官網(wǎng)
SpringSource Tool Suite(STS):一款基于Eclipse開源平臺打造的Spring應(yīng)用開發(fā)環(huán)境。官網(wǎng)
圖像處理
創(chuàng)建、評價和操作圖片的支持庫。
Imgscalr:純Java 2D實現(xiàn),簡單、高效、支持硬件加速的圖像縮放開發(fā)庫。官網(wǎng)
Picasso:安卓圖片下載和圖片緩存開發(fā)庫。官網(wǎng)
Thumbnailator:Thumbnailator是一個高質(zhì)量Java縮略圖開發(fā)庫。官網(wǎng)
ZXing:支持多種格式的一維、二維條形碼圖片處理開發(fā)庫。官網(wǎng)
im4java: 基于ImageMagick或GraphicsMagick命令行的圖片處理開發(fā)庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網(wǎng)
Apache Batik:在Java應(yīng)用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴展自定義的SVG標(biāo)簽。官網(wǎng)
JSON
簡化JSON處理的開發(fā)庫。
Genson:強大且易于使用的Java到JSON轉(zhuǎn)換開發(fā)庫。官網(wǎng)
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調(diào)用。官網(wǎng)
Jackson:與GSON類似,在頻繁使用時性能更佳。官網(wǎng)
LoganSquare:基于Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網(wǎng)
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網(wǎng)
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網(wǎng)
JVM與JDK
目前的JVM和JDK實現(xiàn)。
JDK 9:JDK 9的早期訪問版本。官網(wǎng)
OpenJDK:JDK開源實現(xiàn)。官網(wǎng)
基于JVM的語言
除Java外,可以用來編寫JVM應(yīng)用程序的編程語言。
Scala:融合了面向?qū)ο蠛秃瘮?shù)式編程思想的靜態(tài)類型編程語言。官網(wǎng)
Groovy:類型可選(Optionally typed)的動態(tài)語言,支持靜態(tài)類型和靜態(tài)編譯。目前是一個Apache孵化器項目。官網(wǎng)
Clojure:可看做現(xiàn)代版Lisp的動態(tài)類型語言。官網(wǎng)
Ceylon:RedHat開發(fā)的面向?qū)ο箪o態(tài)類型編程語言。官網(wǎng)
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態(tài)類型編程語言。官網(wǎng)
Xtend:一種靜態(tài)編程語言,能夠?qū)⑵浯a轉(zhuǎn)換為簡潔高效的Java代碼,并基于JVM運行。官網(wǎng)
日志
記錄應(yīng)用程序行為日志的開發(fā)庫。
Apache Log4j 2:使用強大的插件和配置架構(gòu)進行完全重寫。官網(wǎng)
kibana:分析及可視化日志文件。官網(wǎng)
Logback:強健的日期開發(fā)庫,通過Groovy提供很多有趣的選項。官網(wǎng)
logstash:日志文件管理工具。官網(wǎng)
Metrics:通過JMX或HTTP發(fā)布參數(shù),并且支持存儲到數(shù)據(jù)庫。官網(wǎng)
SLF4J:日志抽象層,需要與具體的實現(xiàn)配合使用。官網(wǎng)
機器學(xué)習(xí)
提供具體統(tǒng)計算法的工具。其算法可從數(shù)據(jù)中學(xué)習(xí)。
Apache Flink:快速、可靠的大規(guī)模數(shù)據(jù)處理引擎。官網(wǎng)
Apache Hadoop:在商用硬件集群上用來進行大規(guī)模數(shù)據(jù)存儲的開源軟件框架。官網(wǎng)
Apache Mahout:專注協(xié)同過濾、聚類和分類的可擴展算法。官網(wǎng)
Apache Spark:開源數(shù)據(jù)分析集群計算框架。官網(wǎng)
DeepDive:從非結(jié)構(gòu)化數(shù)據(jù)建立結(jié)構(gòu)化信息并集成到已有數(shù)據(jù)庫的工具。官網(wǎng)
Deeplearning4j:分布式多線程深度學(xué)習(xí)開發(fā)庫。官網(wǎng)
H2O:用作大數(shù)據(jù)統(tǒng)計的分析引擎。官網(wǎng)
Weka:用作數(shù)據(jù)挖掘的算法集合,包括從預(yù)處理到可視化的各個層次。官網(wǎng)
QuickML:高效機器學(xué)習(xí)庫。官網(wǎng)、GitHub
消息傳遞
在客戶端之間進行消息傳遞,確保協(xié)議獨立性的工具。
Aeron:高效可擴展的單播、多播消息傳遞工具。官網(wǎng)
Apache ActiveMQ:實現(xiàn)JMS的開源消息代理(broker),可將同步通訊轉(zhuǎn)為異步通訊。官網(wǎng)
Apache Camel:通過企業(yè)級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網(wǎng)
Apache Kafka:高吞吐量分布式消息系統(tǒng)。官網(wǎng)
Hermes:快速、可靠的消息代理(Broker),基于Kafka構(gòu)建。官網(wǎng)
JBoss HornetQ:清晰、準(zhǔn)確、模塊化,可以方便嵌入的消息工具。官網(wǎng)
JeroMQ:ZeroMQ的純Java實現(xiàn)。官網(wǎng)
Smack:跨平臺XMPP客戶端函數(shù)庫。官網(wǎng)
Openfire:是開源的、基于XMPP、采用Java編程語言開發(fā)的實時協(xié)作服務(wù)器。 Openfire安裝和使用都非常簡單,并可利用Web界面進行管理。?官網(wǎng)?GitHub
Spark:是一個開源,跨平臺IM客戶端。它的特性支持集組聊天,電話集成和強大安全性能。如果企業(yè)內(nèi)部部署IM使用Openfire+Spark是最佳的組合。?官網(wǎng)?GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 服務(wù)器。無需其他第三方庫支持,可以處理非常高的復(fù)雜和大量的用戶數(shù),可以根據(jù)需要進行水平擴展。?官網(wǎng)
雜項
未分類其它資源。
Design Patterns:實現(xiàn)并解釋了最常見的設(shè)計模式。官網(wǎng)
Jimfs:內(nèi)存文件系統(tǒng)。官網(wǎng)
Lanterna:類似curses的簡單console文本GUI函數(shù)庫。官網(wǎng)
LightAdmin:可插入式CRUD UI函數(shù)庫,可用來快速應(yīng)用開發(fā)。官網(wǎng)
OpenRefine:用來處理混亂數(shù)據(jù)的工具,包括清理、轉(zhuǎn)換、使用Web Service進行擴展并將其關(guān)聯(lián)到數(shù)據(jù)庫。官網(wǎng)
RoboVM:Java編寫原生iOS應(yīng)用。官網(wǎng)
Quartz:強大的任務(wù)調(diào)度庫.官網(wǎng)
應(yīng)用監(jiān)控工具
監(jiān)控生產(chǎn)環(huán)境中應(yīng)用程序的工具。
AppDynamics:性能監(jiān)測商業(yè)工具。官網(wǎng)
JavaMelody:性能監(jiān)測和分析工具。官網(wǎng)
Kamon:Kamon用來監(jiān)測在JVM上運行的應(yīng)用程序。官網(wǎng)
New Relic:性能監(jiān)測商業(yè)工具。官網(wǎng)
SPM:支持對JVM應(yīng)用程序進行分布式事務(wù)追蹤的性能監(jiān)測商業(yè)工具。官網(wǎng)
OverOps(Takipi):產(chǎn)品運行時錯誤監(jiān)測及調(diào)試商業(yè)工具。官網(wǎng)
原生開發(fā)庫
用來進行特定平臺開發(fā)的原生開發(fā)庫。
JNA:不使用JNI就可以使用原生開發(fā)庫。此外,還為常見系統(tǒng)函數(shù)提供了接口。官網(wǎng)
自然語言處理
用來專門處理文本的函數(shù)庫。
Apache OpenNLP:處理類似分詞等常見任務(wù)的工具。官網(wǎng)
CoreNLP:斯坦佛CoreNLP提供了一組基礎(chǔ)工具,可以處理類似標(biāo)簽、實體名識別和情感分析這樣的任務(wù)。官網(wǎng)
LingPipe:一組可以處理各種任務(wù)的工具集,支持POS標(biāo)簽、情感分析等。官網(wǎng)
Mallet:統(tǒng)計學(xué)自然語言處理、文檔分類、聚類、主題建模等。官網(wǎng)
網(wǎng)絡(luò)
網(wǎng)絡(luò)編程函數(shù)庫。
Async Http Client:異步HTTP和WebSocket客戶端函數(shù)庫。官網(wǎng)
Grizzly:NIO框架,在Glassfish中作為網(wǎng)絡(luò)層使用。官網(wǎng)
Netty:構(gòu)建高性能網(wǎng)絡(luò)應(yīng)用程序開發(fā)框架。官網(wǎng)
OkHttp:一個Android和Java應(yīng)用的HTTP+SPDY客戶端。官網(wǎng)
Undertow:基于NIO實現(xiàn)了阻塞和非阻塞API的Web服務(wù)器,在WildFly中作為網(wǎng)絡(luò)層使用。官網(wǎng)
ORM
處理對象持久化的API。
Ebean:支持快速數(shù)據(jù)訪問和編碼的ORM框架。官網(wǎng)
EclipseLink:支持許多持久化標(biāo)準(zhǔn),JPA、JAXB、JCA和SDO。官網(wǎng)
Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術(shù)社區(qū)非?;钴S。官網(wǎng)
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網(wǎng)
OrmLite:輕量級開發(fā)包,免除了其它ORM產(chǎn)品中的復(fù)雜性和開銷。官網(wǎng)
Nutz:另一個SSH。官網(wǎng),Github,論壇
JFinal:JAVA WEB + ORM框架。官網(wǎng),Github
Apache OpenJPA: 實現(xiàn)了 EJB 3.0 中的 JPA 標(biāo)準(zhǔn),為開發(fā)者提供功能強大、使用簡單的持久化數(shù)據(jù)管理框架。?官網(wǎng)
用來幫助創(chuàng)建PDF文件的資源。
Apache FOP:從XSL-FO創(chuàng)建PDF。官網(wǎng)
Apache PDFBox:用來創(chuàng)建和操作PDF的工具集。官網(wǎng)
DynamicReports:JasperReports的精簡版。官網(wǎng)
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網(wǎng)
iText:一個易于使用的PDF函數(shù)庫,用來編程創(chuàng)建PDF文件。注意,用于商業(yè)用途時需要許可證。官網(wǎng)
JasperReports:一個復(fù)雜的報表引擎。官網(wǎng)
性能分析
性能分析、性能剖析及基準(zhǔn)測試工具。
jHiccup:提供平臺中JVM暫停的日志和記錄。官網(wǎng)
JMH:JVM基準(zhǔn)測試工具。官網(wǎng)
JProfiler:商業(yè)分析器。官網(wǎng)
LatencyUtils:測量和報告延遲的工具。官網(wǎng)
VisualVM:對運行中的應(yīng)用程序信息提供了可視化界面。官網(wǎng)
YourKit Java Profiler:商業(yè)分析器。官網(wǎng)
響應(yīng)式開發(fā)庫
用來開發(fā)響應(yīng)式應(yīng)用程序的開發(fā)庫。
Reactive Streams:異步流處理標(biāo)準(zhǔn),支持非阻塞式反向壓力(backpressure)。官網(wǎng)
Reactor:構(gòu)建響應(yīng)式快速數(shù)據(jù)(fast-data)應(yīng)用程序的開發(fā)庫。官網(wǎng)
RxJava:通過JVM可觀察序列(observable sequence)構(gòu)建異步和基于事件的程序。官網(wǎng)
REST框架
用來創(chuàng)建RESTful 服務(wù)的框架。
Dropwizard:偏向于自己使用的Web框架。用來構(gòu)建Web應(yīng)用程序,使用了Jetty、Jackson、Jersey和Metrics。官網(wǎng)
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發(fā)的HTTP客戶端連接器(binder)。官網(wǎng)
Jersey:JAX-RS參考實現(xiàn)。官網(wǎng)
RESTEasy:經(jīng)過JAX-RS規(guī)范完全認(rèn)證的可移植實現(xiàn)。官網(wǎng)
RestExpress:一個Java類型安全的REST客戶端。官網(wǎng)
RestX:基于注解處理和編譯時源碼生成的框架。官網(wǎng)
Retrofit:類型安全的REST客戶端。官網(wǎng)
Spark:受到Sinatra啟發(fā)的Java REST框架。官網(wǎng)
Swagger:Swagger是一個規(guī)范且完整的框架,提供描述、生產(chǎn)、消費和可視化RESTful Web Service。官網(wǎng)
Blade:國人開發(fā)的一個輕量級的MVC框架. 它擁有簡潔的代碼,優(yōu)雅的設(shè)計。官網(wǎng)
科學(xué)計算與分析
用于科學(xué)計算和分析的函數(shù)庫。
DataMelt:用于科學(xué)計算、數(shù)據(jù)分析及數(shù)據(jù)可視化的開發(fā)環(huán)境。官網(wǎng)
JGraphT:支持?jǐn)?shù)學(xué)圖論對象和算法的圖形庫。官網(wǎng)
JScience:用來進行科學(xué)測量和單位的一組類。官網(wǎng)
搜索引擎
文檔索引引擎,用于搜索和分析。
Apache Solr:一個完全的企業(yè)搜索引擎。為高吞吐量通信進行了優(yōu)化。官網(wǎng)
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web接口和無schema的JSON文檔。官網(wǎng)
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網(wǎng)
安全
用于處理安全、認(rèn)證、授權(quán)或會話管理的函數(shù)庫。
Apache Shiro:執(zhí)行認(rèn)證、授權(quán)、加密和會話管理。官網(wǎng)
Bouncy Castle,涵蓋了從基礎(chǔ)的幫助函數(shù)到PGP/SMIME操作。官網(wǎng):多途加密開發(fā)庫。支持JCA提供者(JCA provider)
Cryptomator:在云上進行客戶端跨平臺透明加密。官網(wǎng)
Keycloak:為瀏覽器應(yīng)用和RESTful Web Service集成SSO和IDM。目前還處于beta版本,但是看起來非常有前途。官網(wǎng)
PicketLink:PicketLink是一個針對Java應(yīng)用進行安全和身份認(rèn)證管理的大型項目(Umbrella Project)。官網(wǎng)
序列化
用來高效處理序列化的函數(shù)庫。
FlatBuffers:高效利用內(nèi)存的序列化函數(shù)庫,無需解包和解析即可高效訪問序列化數(shù)據(jù)。官網(wǎng)
Kryo:快速、高效的對象圖形序列化框架。官網(wǎng)
FST:提供兼容JDK的高性能對象圖形序列化。官網(wǎng)
MessagePack:一種高效的二進制序列化格式。官網(wǎng)
應(yīng)用服務(wù)器
用來部署應(yīng)用程序的服務(wù)器。
Apache Tomcat:針對Servlet和JSP的應(yīng)用服務(wù)器,健壯性好且適用性強。官網(wǎng)
Apache TomEE:Tomcat加Java EE。官網(wǎng)
Jetty:輕量級、小巧的應(yīng)用服務(wù)器,通常會嵌入到項目中。官網(wǎng)
WebSphere Liberty:輕量級、模塊化應(yīng)用服務(wù)器,由IBM開發(fā)。官網(wǎng)
WildFly:之前被稱作JBoss,由Red Hat開發(fā)。支持很多Java EE功能。官網(wǎng)
模板引擎
在模板中替換表達式的工具。
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網(wǎng)
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關(guān)系。官網(wǎng)
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。官網(wǎng)
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網(wǎng)
Beetl:新一代的模板引擎,功能強大,性能良好,超過當(dāng)前流行的模板引擎。而且還易學(xué)易用。官網(wǎng)
測試
測試內(nèi)容從對象到接口,涵蓋性能測試和基準(zhǔn)測試工具。
Apache JMeter:功能性測試和性能評測。官網(wǎng)
Arquillian:集成測試和功能行測試平臺,集成Java EE容器。官網(wǎng)
AssertJ:支持流式斷言提高測試的可讀性。官網(wǎng)
Awaitility:用來同步異步操作的DSL。官網(wǎng)
Cucumber:BDD測試框架。官網(wǎng)
Gatling:設(shè)計為易于使用、可維護的和高性能負(fù)載測試工具。官網(wǎng)
Hamcrest:可用來靈活創(chuàng)建意圖(intent)表達式的匹配器。官網(wǎng)
JMockit:用來模擬靜態(tài)、final方法等。官網(wǎng)
JUnit:通用測試框架。官網(wǎng)
Mockito:在自動化單元測試中創(chuàng)建測試對象,為TDD或BDD提供支持。官網(wǎng)
PowerMock: 支持模擬靜態(tài)方法、構(gòu)造函數(shù)、final類和方法、私有方法以及移除靜態(tài)初始化器的模擬工具。官網(wǎng)
REST Assured:為REST/HTTP服務(wù)提供方便測試的Java DSL。官網(wǎng)
Selenide:為Selenium提供精準(zhǔn)的周邊API,用來編寫穩(wěn)定且可讀的UI測試。官網(wǎng)
Selenium:為Web應(yīng)用程序提供可移植軟件測試框架。官網(wǎng)
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網(wǎng)兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網(wǎng)
Truth:Google的斷言和命題(proposition)框架。官網(wǎng)
Unitils:模塊化測試函數(shù)庫,支持單元測試和集成測試。官網(wǎng)
WireMock:Web Service測試樁(Stub)和模擬函數(shù)。官網(wǎng)
通用工具庫
通用工具類函數(shù)庫。
Apache Commons:提供各種用途的函數(shù),比如配置、驗證、集合、文件上傳或XML處理等。官網(wǎng)
args4j:命令行參數(shù)解析器。官網(wǎng)
CRaSH:為運行進行提供CLI。官網(wǎng)
Gephi:可視化跨平臺網(wǎng)絡(luò)圖形化操作程序。官網(wǎng)
Guava:集合、緩存、支持基本類型、并發(fā)函數(shù)庫、通用注解、字符串處理、I/O等。官網(wǎng)
JADE:構(gòu)建、調(diào)試多租戶系統(tǒng)的框架和環(huán)境。官網(wǎng)
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網(wǎng)
JCommander:命令行參數(shù)解析器。官網(wǎng)
Protégé:提供存在論(ontology)編輯器以及構(gòu)建知識系統(tǒng)的框架。官網(wǎng)
網(wǎng)絡(luò)爬蟲
用于分析網(wǎng)站內(nèi)容的函數(shù)庫。
Apache Nutch:可用于生產(chǎn)環(huán)境的高度可擴展、可伸縮的網(wǎng)絡(luò)爬蟲。官網(wǎng)
Crawler4j:簡單的輕量級網(wǎng)絡(luò)爬蟲。官網(wǎng)
JSoup:刮取、解析、操作和清理HTML。官網(wǎng)
webmagic:一個可擴展的Java爬蟲框架,架構(gòu)類似Python的Scrapy。
Web框架
用于處理Web應(yīng)用程序不同層次間通訊的框架。
Apache Tapestry:基于組件的框架,使用Java創(chuàng)建動態(tài)、強健的、高度可擴展的Web應(yīng)用程序。官網(wǎng)
Apache Wicket:基于組件的Web應(yīng)用框架,與Tapestry類似帶有狀態(tài)顯示GUI。官網(wǎng)
Google Web Toolkit:一組Web開發(fā)工具集,包含在客戶端將Java代碼轉(zhuǎn)為JavaScript的編譯器、XML解析器、RCP?官網(wǎng)API、JUnit集成、國際化支持和GUI控件。
Grails:Groovy框架,旨在提供一個高效開發(fā)環(huán)境,使用約定而非配置、沒有XML并支持混入(mixin)。官網(wǎng)
Ninja:Java全棧Web開發(fā)框架。非常穩(wěn)固、快速和高效。官網(wǎng)
Pippo:小型、高度模塊化的類Sinatra框架。官網(wǎng)
Play:使用約定而非配置,支持代碼熱加載并在瀏覽器中顯示錯誤。官網(wǎng)
PrimeFaces:JSF框架,提供免費和帶支持的商業(yè)版本。包括若干前端組件。官網(wǎng)
Ratpack:一組Java開發(fā)函數(shù)庫,用于構(gòu)建快速、高效、可擴展且測試完備的HTTP應(yīng)用程序。官網(wǎng)
Spring Boot:微框架,簡化了Spring新程序的開發(fā)過程。官網(wǎng)
Spring:旨在簡化Java EE的開發(fā)過程,提供依賴注入相關(guān)組件并支持面向切面編程。官網(wǎng)
Vaadin:基于GWT構(gòu)建的事件驅(qū)動框架。使用服務(wù)端架構(gòu),客戶端使用Ajax。官網(wǎng)
Blade:國人開發(fā)的一個輕量級的MVC框架. 它擁有簡潔的代碼,優(yōu)雅的設(shè)計。官網(wǎng)
業(yè)務(wù)流程管理套件
流程驅(qū)動的軟件系統(tǒng)構(gòu)建。
jBPM:非常靈活的業(yè)務(wù)流程管理框架,致力于構(gòu)建開發(fā)與業(yè)務(wù)分析人員之間的橋梁。官網(wǎng)
Activity:輕量級工作流和業(yè)務(wù)流程管理框架。官網(wǎng)?github