古董级工具
这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。
构建工具
构建及应用依赖关系处理工具。
- Apache Maven :Maven是一款声明式构建及依赖管理工具,采用约定优于配置方式进行管理。相对Apache Ant更推荐使用Maven,前者采用了过程式管理,维护相对困难。
- Bazel:来自Google的构建工具,可以快速、可*地构建代码。
- Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。
字节码操作
编程方式操作字节码的开发库。
集群管理
在集群内动态管理应用程序的框架。
- Apache Aurora:Apache Aurora是一个Mesos框架,用于长时间运行服务和定时任务(cron job)。
- Singularity:Singularity是一个Mesos框架,方便部署和操作。它支持Web Service、后台运行、调度作业和一次性任务。
代码分析
测量代码指标和质量工具。
编译器生成工具
用来创建解析器、解释器或编译器的框架。
- ANTLR:复杂的全功能自顶向下解析框架。
- JavaCC:JavaCC是更加专门的轻量级工具,易于上手且支持语法超前预测。
外部配置工具
支持外部配置的开发库。
约束满足问题求解程序
帮助解决约束满足问题的开发库。
持续集成
CSV解析
简化CSV数据读写的框架与开发库
数据库
简化数据库交互的相关工具。
数据结构
时间日期工具库
处理时间和日期的开发库。
依赖注入
帮助实现依赖翻转范式的开发库。
开发流程增强工具
从最基本的层面增强开发流程。
分布式应用
用来编写分布式容错应用的开发库和框架。
分布式数据库
对应用程序而言,在分布式系统中的数据库看起来就像是只有一个数据源。
发布
以本机格式发布应用程序的工具。
- Bintray:发布二进制文件版本控制工具。可以于Maven或Gradle一起配合使用。提供开源免费版本和几种商业收费版本。
- Central Repository:最大的二进制组件仓库,面向开源社区提供免费服务。Apache Maven默认使用Central Repository,也可以在所有其他构建工具中使用。
- IzPack:为跨平台部署建立创作工具(Authoring Tool)。
- JitPack:打包GitHub仓库的便捷工具。可根据需要构建Maven、Gradle项目,发布可立即使用的组件。
- Launch4j:将JAR包装为轻量级本机Windows可执行程序。
- Nexus:支持代理和缓存功能的二进制管理工具。
- packr:将JAR、资源和JVM打包成Windows、Linux和Mac OS X本地发布文件。
文档处理工具
处理Office文档的开发库。
函数式编程
函数式编程支持库。
- Cyclops:支持一元(Monad)操作和流操作工具类、comprehension(List语法)、模式匹配、trampoline等特性。
- Fugue:Guava的函数式编程扩展。
- Functional Java:实现了多种基础和高级编程抽象,用来辅助面向组合开发(composition-oriented development)。
- Javaslang:一个函数式组件库,提供持久化数据类型和函数式控制结构。
- jOOλ:旨在填补Java 8 lambda差距的扩展,提供了众多缺失的类型和一组丰富的顺序流API。
游戏开发
游戏开发框架。
GUI
现代图形化用户界面开发库。
高性能计算
涵盖了从集合到特定开发库的高性能计算相关工具。
IDE
简化开发的集成开发环境。
图像处理
创建、评价和操作图片的支持库。
JSON
简化JSON处理的开发库。
- Genson:强大且易于使用的Java到JSON转换开发库。
- Gson:支持在对象与JSON之间双向序列化,性能良好且可以实时调用。
- Jackson:与GSON类似,在频繁使用时性能更佳。
- LoganSquare:基于Jackson流式API,提供对JSON解析和序列化。比GSON与Jackson组合方式效果更好。
JVM与JDK
目前的JVM和JDK实现。
基于JVM的语言
除Java外,可以用来编写JVM应用程序的编程语言。
- Scala:融合了面向对象和函数式编程思想的静态类型编程语言。
- Groovy:类型可选(Optionally typed)的动态语言,支持静态类型和静态编译。目前是一个Apache孵化器项目。
- Clojure:可看做现代版Lisp的动态类型语言。
- Ceylon:RedHat开发的面向对象静态类型编程语言。
- Kotlin:JetBrain针对JVM、安卓和浏览器提供的静态类型编程语言。
日志
记录应用程序行为日志的开发库。
机器学习
提供具体统计算法的工具。其算法可从数据中学习。
消息传递
在客户端之间进行消息传递,确保协议独立性的工具。
杂项
未分类其它资源。
应用监控工具
监控生产环境中应用程序的工具。
原生开发库
用来进行特定平台开发的原生开发库。
- JNA:不使用JNI就可以使用原生开发库。此外,还为常见系统函数提供了接口。
自然语言处理
用来专门处理文本的函数库。
网络
网络编程函数库。
ORM
A处理对象持久化的API。
PDF
用来帮助创建PDF文件的资源。
性能分析
性能分析、性能剖析及基准测试工具。
响应式开发库
用来开发响应式应用程序的开发库。
REST框架
用来创建RESTful 服务的框架。
- Dropwizard:偏向于自己使用的Web框架。用来构建Web应用程序,使用了Jetty、Jackson、Jersey和Metrics。
- Feign:受Retrofit、JAXRS-2.0和WebSocket启发的HTTP客户端连接器(binder)。
- Jersey:JAX-RS参考实现。
- RESTEasy:经过JAX-RS规范完全认证的可移植实现。
- RestExpress:一个Java类型安全的REST客户端。
- RestX:基于朱洁处理和编译时源码生成的框架。
- Retrofit:类型安全的REST客户端。
- Spark:受到Sinatra启发的Java REST框架。
- Swagger:Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。
科学计算与分析
用于科学计算和分析的函数库。
搜索引擎
文档索引引擎,用于搜索和分析。
安全
用于处理安全、认证、授权或会话管理的函数库。
序列化
用来高效处理序列化的函数库。
应用服务器
用来部署应用程序的服务器。
模板引擎
在模板中替换表达式的工具。
测试
测试内容从对象到接口,涵盖性能测试和基准测试工具。
通用工具库
通用工具类函数库。
网络爬虫
用于分析网站内容的函数库。
Web框架
用于处理Web应用程序不同层次间通讯的框架。
- Apache Tapestry:基于组件的框架,使用Java创建动态、强健的、高度可扩展的Web应用程序。
- Apache Wicket:基于组件的Web应用框架,与Tapestry类似带有状态显示GUI。
- Google Web Toolkit:一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件。
- Grails:Groovy框架,旨在提供一个高效开发环境,使用约定而非配置、没有XML并支持混入(mixin)。
- Ninja:Java全栈Web开发框架。非常稳固、快速和高效。
- Pippo:小型、高度模块化的类Sinatra框架。
- Play:使用约定而非配置,支持代码热加载并在浏览器中显示错误。
- PrimeFaces:JSF框架,提供免费和带支持的商业版本。包括若干前端组件。
- Ratpack:一组Java开发函数库,用于构建快速、高效、可扩展且测试完备的HTTP应用程序。
- Spring Boot:微框架,简化了Spring新程序的开发过程。
- Spring:旨在简化Java EE的开发过程,提供依赖注入相关组件并支持面向切面编程。
- Vaadin:基于GWT构建的事件驱动框架。使用服务端架构,客户端使用Ajax。
资源
社区
有影响力的书
具有广泛影响且值得阅读的Java经典书籍。
播客
可以一边编程一边听的东西。
微博、微信公众号
- ImportNew:是最受欢迎的、专注Java技术分享的微信公众号。专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
- ImportNew 微博:@ImportNew
知名网站
值得关注的Java技术站点。
中文站点
英文站点
https://github.com/jobbole/awesome-java-cn#ancients
[此贴子已经被作者于2015-11-06 09:22:47编辑过]