Java

Awesome Java Awesome

精选的Java框架,库和软件清单.

Projects

Bean Mapping

_简化bean映射的框架.

  • dOOv -提供用于类型安全域模型验证和映射的流畅API. 它使用注释,代码生成和类型安全的DSL来使bean验证和映射变得快速而容易.
  • Dozer -使用注释和API或XML配置将数据从一个对象复制到另一个对象的映射器.
  • JMapper -使用字节码操作实现闪电般的快速映射. 支持注释和API或XML配置.
  • MapStruct -代码生成器,它基于约定之上的配置方法简化了不同bean类型之间的映射.
  • ModelMapper -智能对象映射库,可自动将对象相互映射.
  • Orika JavaBean映射框架,将数据(除其他功能外)从一个对象递归复制到另一个对象.
  • reMap -基于Lambda和方法句柄的映射,如果对象具有不同的名称,则需要代码,而无需注释.
  • Selma -基于注释处理器的bean映射器.

Build

_处理应用程序的构建周期和依赖关系的工具.

  • Apache Maven -声明式构建和依赖项管理,相对于配置更倾向于约定. 它可能比Apache Ant更可取,后者使用一种相当程序性的方法并且可能难以维护.
  • Bazel -Google提供的工具,可快速可靠地构建代码.
  • Buck -鼓励创建由代码和资源组成的小型可重用模块.
  • Gradle -通过Groovy编程的增量构建,而不是声明XML. 与Maven的依赖项管理配合良好.

Bytecode Manipulation

_库以编程方式操纵字节码

  • ASM -通用的低级字节码操作和分析.
  • Byte Buddy -通过流利的API进一步简化了字节码的生成.
  • bytecode-viewer -Java 8 Jar和Android APK逆向工程套件. (仅限GPL-3.0)
  • Byteman -在运行时通过DSL处理字节码(规则); 主要用于测试/故障排除. (LGPL-2.1或更高版本)
  • cglib -字节码生成库.
  • Javassist -尝试简化字节码编辑.
  • Mixin - Manipulate bytecode at runtime using real Java code.
  • Perses -根据混沌工程原理,在字节码级别动态注入故障/延迟.

Caching

_提供缓存功能的库.

  • cache2k -内存中高性能缓存库.
  • Caffeine -高性能,接近最佳的缓存库.
  • Ehcache -分布式通用缓存.
  • Infinispan -用于缓存的高度并发的键/值数据存储.

CLI

_与CLI相关的所有库.

  • ASCII Table -以ASCII格式绘制表格的库.
  • Airline -基于注释的框架,用于解析类似Git的命令行参数.
  • args4j -用于解析命令行参数的小型库.
  • Jansi -ANSI转义码,用于格式化控制台输出.
  • Java ASCII Render -控制台的图形基元.
  • JCommander -具有自定义类型和通过实现接口进行验证的命令行参数解析框架.
  • jbock -类型安全,无反射,基于注释的命令行解析器.
  • Jexer -先进的控制台(和Swing)文本用户界面(TUI)库,带有可拖动鼠标的窗口,内置的终端窗口管理器和sixel图像支持. 看起来像 Turbo Vision.
  • JLine -包括来自现代炮弹的功能,例如完成或历史记录.
  • JOpt Simple - Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
  • picocli -使用中的ANSI颜色和样式有助于基于注释的POSIX / GNU /任何语法,子命令,选项和位置参数的强类型化.
  • Text-IO -帮助创建基于控制台的完整应用程序.
  • Lanterna -简单的控制台文本GUI库,类似于curses. (仅限LGPL-3.0)

Cluster Management

_可以动态管理集群内部应用程序的框架.

  • Apache Aurora -用于长期服务和Cron作业的Mesos框架.
  • Apache Mesos -从计算机上提取CPU,内存,存储和其他计算资源.
  • Singularity -使部署和操作变得容易的Mesos框架. 它支持Web服务,后台工作人员,计划的作业和一次性任务.

Code Analysis

提供指标和质量度量的工具.

  • Checkstyle -编码约定和标准的静态分析. (LGPL-2.1或更高版本)
  • Error Prone -将常见的编程错误捕获为编译时错误.
  • Infer -用于验证代码正确性的现代静态分析工具.
  • jQAssistant -使用基于Neo4J的查询语言进行静态代码分析. (仅限GPL-3.0)
  • NullAway -以较低的构建时间开销消除了NullPointerExceptions.
  • PMD -查找不良编码实践的源代码分析.
  • SonarJava -SonarQube和SonarLint的静态分析仪. (仅限LGPL-3.0) -[Sourcetrail![c]](https://www.sourcetrail.com)-可视源代码导航器.
  • Spoon -用于分析和转换Java源代码的库.
  • Spotbugs -字节码的静态分析,以发现潜在的错误. (仅限LGPL-2.1)

Code Coverage

启用测试套件代码覆盖率度量收集的框架和工具.

-[三叶草![c]](https://www.atlassian.com/software/clover/overview)-依靠源代码检测而不是字节码检测. - Cobertura -依靠离线(或静态)字节码检测和类加载来收集代码覆盖率指标. (仅限GPL-2.0) - JaCoCo -可以使用脱机和运行时字节码检测来收集代码覆盖率度量的框架.

Code Generators

_为重复代码生成模式以减少冗长和容易出错的工具.

  • ADT4J -用于代数数据类型的JSR-269代码生成器.
  • Auto -生成工厂,服务和价值类.
  • FreeBuilder -自动生成Builder模式.
  • Immutables -注释处理器生成简单,安全和一致的值对象.
  • JavaPoet -生成源文件的API.
  • JHipster -Spring Boot和AngularJS的Yeoman源代码生成器.
  • Joda-Beans -小型框架,可向Java添加可查询的属性,从而增强了JavaBeans.
  • Lombok -旨在减少冗长程度的代码生成器.

Compiler-compiler

_有助于创建解析器,解释器或编译器的框架.

  • ANTLR -用于自上而下解析的复杂的全功能框架.
  • JavaCC -解析器生成器,用于生成自上而下的解析器. 允许进行词法状态切换,并允许扩展BNF规范.
  • JFlex -词法分析器生成器.

Configuration

_提供外部配置的库.

  • centraldogma -基于Git,ZooKeeper和HTTP / 2的高可用性版本控制服务配置存储库.
  • cfg4j -用于以Java编写的分布式应用程序的现代配置库.
  • config - Configuration library for JVM languages.
  • dotenv - A twelve-factor configuration library for Java.
  • ini4j -提供用于处理Windows的INI文件的API.
  • KAConf -用于Java和Kotlin的基于注释的配置系统.
  • owner -减少属性的重复.

Constraint Satisfaction Problem Solver

_有助于实现优化和可满足性问题的库.

  • Choco -使用约束编程技术的现成的约束满足问题解决程序.
  • JaCoP -包含FlatZinc语言的界面,使其能够执行MiniZinc模型. (AGPL-3.0)
  • OptaPlanner -业务计划和资源调度优化求解器.

CSV

_简化了读写CSV数据的框架和库.

  • jackson-dataformat-csv -用于读取和写入CSV的Jackson扩展.
  • opencsv -简单的CSV解析器.
  • Super CSV -强大的CSV解析器,支持Dozer,Joda-Time和Java 8.
  • uniVocity-parsers -最快,功能最齐全的解析器之一. 还带有用于TSV和固定宽度记录的解析器.

Database

简化与数据库交互的所有内容.

  • Apache Drill -用于大数据探索的分布式,架构动态的ANSI SQL查询引擎.
  • Apache Phoenix -HBase上的高性能关系数据库层,用于低延迟应用程序.
  • AranoDB -ArangoDB Java驱动程序.
  • Chronicle Map -高效的内存中(优化选项持久存储到磁盘),堆外键值存储.
  • druid -高性能,面向列的分布式数据存储.
  • eXist -NoSQL文档数据库和应用程序平台. (仅限LGPL-2.1)
  • FlexyPool -将指标和故障转移策略引入最常见的连接池解决方案.
  • Flyway -简单的数据库迁移工具.
  • H2 -小型SQL数据库以其内存功能而著称.
  • HikariCP -高性能JDBC连接池.
  • jasync-sql -适用于MySQL和PostgreSQL的异步DB驱动程序.
  • JDBI -方便的JDBC抽象.
  • Jedis -用于与Redis交互的小型客户端,带有命令方法.
  • Jest -Elasticsearch REST API的客户端.
  • jetcd -etcd的客户端库.
  • Jinq -通过Java 8 Lambda的符号执行(在JPA或jOOQ之上)进行类型安全的数据库查询.
  • jOOQ -根据SQL模式生成类型安全代码.
  • Liquibase -独立于数据库的库,用于跟踪,管理和应用数据库架构更改.
  • MapDB -嵌入式数据库引擎,提供并发集合,这些并发集合备份在磁盘或堆外内存中.
  • MariaDB4j -无需安装或外部依赖项的MariaDB启动器.
  • OrientDB - Embeddable distributed database written on top of Hazelcast.
  • Presto -用于大数据的分布式SQL查询引擎.
  • Querydsl -Typesafe统一查询.
  • Realm -移动数据库可直接在手机,平板电脑或可穿戴设备中运行.
  • Redisson -允许在Redis服务器之上提供分布式和可伸缩的数据结构.
  • requery -现代,轻量级但功能强大的对象映射和SQL生成器. 轻松映射到数据库或创建数据库,或从任何使用Java的平台执行查询和更新.
  • Speedment -利用Java 8的Stream API进行查询的数据库访问库.
  • sql2o - Thin JDBC wrapper that simplifies database access and provides simple mapping of ResultSets to POJOs.
  • Vibur DBCP -具有高级性能监视功能的JDBC连接池库.
  • Xodus -高度并发的无事务模式且符合ACID的嵌入式数据库.

Data Structures

_高效而具体的数据结构.

  • Apache Avro -数据交换格式,具有动态类型,未加标签的数据以及缺少手动分配的ID.
  • Apache Orc -针对基于Hadoop的工作负载的快速,高效的列式存储格式.
  • Apache Parquet -基于Google关于Dremel的论文中的汇编算法的列式存储格式.
  • Apache Thrift -源自Facebook的数据交换格式.
  • Big Queue -基于内存映射文件的大型,快速且持久的队列.
  • HyperMinHash-java -用于计算对数日志空间中的并集,交集和集合基数的概率数据结构.
  • Persistent Collection -Java Collections Framework的持久性和不变性.
  • Protobuf -Google的数据交换格式.
  • SBE -简单的二进制编码,这是最快的消息格式之一.
  • Tape -闪电般的,基于事务的,基于文件的FIFO.
  • Wire -干净,轻便的协议缓冲区.

Date and Time

_与处理日期和时间有关的库.

Dependency Injection

有助于实现 Inversion of Control 范例.

  • Apache DeltaSpike -CDI扩展框架.
  • Dagger2 -无反射的编译时注入框架.
  • Feather -符合JSR-330的超轻量级依赖注入库.
  • Governator -扩展了Google Guice的扩展程序和实用程序.
  • Guice -完善Dagger的轻量级,自以为是的框架.
  • HK2 -轻量级和动态依赖注入框架.
  • JayWire -轻量级依赖注入框架. (仅限LGPL-3.0)

Development

_从根本上增强开发过程.

  • AspectJ -无缝的面向方面的编程扩展.
  • DCEVM -JVM修改,允许在运行时无限制地重新定义已加载的类. (仅限GPL-2.0)
  • Faux Pas -通过避开默认情况下不允许Java运行时中的任何功能接口引发已检查异常的问题来简化错误处理的库.
  • HotswapAgent -无限的运行时类和资源重新定义. (仅限GPL-2.0)
  • JavaParser -解析,修改和生成Java代码.
  • JavaSymbolSolver -Java的符号求解器. -[JRebel![c]](https://zeroturnaround.com/software/jrebel)-立即重新加载代码和配置更改,而无需重新部署.
  • Manifold -通过强大的功能(如类型安全的元编程,结构化类型化和扩展方法)重新激发Java的活力.
  • NoException -允许在功能接口中检查异常,并将异常转换为Optional返回.
  • SneakyThrow -忽略没有字节码操作的检查异常. 也可以在Java 8流操作中使用.

Distributed Applications

_用于编写分布式和容错应用程序的库和框架.

  • Apache Geode -内存数据管理系统,可提供可靠的异步事件通知和有保证的消息传递.
  • Apache Storm -实时计算系统.
  • Apache ZooKeeper -具有用于大型分布式系统的分布式配置,同步和命名注册表的协调服务.
  • Atomix -容错的分布式协调框架.
  • Axon Framework -用于创建CQRS应用程序的框架.
  • Dropwizard Circuit Breaker -Dropwizard的断路器设计模式. (仅限GPL-2.0)
  • Failsafe -通过重试和断路器进行简单的故障处理. -[Hazelcast![c]](https://hazelcast.org)-高度可扩展的内存数据网格,带有免费的开源版本.
  • JGroups -用于可靠消息传递和集群创建的工具包.
  • Orbit -虚拟演员; 为传统参与者增加了另一个层次的抽象.
  • Quasar -JVM的轻量级线程和参与者.
  • resilience4j -功能容错库.
  • ScaleCube -基于SWIM和八卦协议的可嵌入集群成员库.
  • Zuul -网关服务,提供动态路由,监视,弹性,安全性等.

Distributed Transactions

_分布式事务提供了一种机制,用于确保在存在并发访问和部分故障的情况下数据更新的一致性.

  • Atomikos -提供对REST,SOA和微服务的事务,并支持JTA和XA.
  • Bitronix -JTA 1.1 API的简单但完整的实现.
  • Narayana -提供对传统ACID和补偿交易的支持,还符合JTA,JTS和其他标准. (仅限LGPL-2.1)

Distribution

_以本机格式处理应用程序分发的工具.

-[Bintray![c]](https://bintray.com)-用于处理发布的二进制文件的版本控制. 与Maven或Gradle兼容,提供免费的开源软件计划以及一些商业计划. -[Boxfuse![c]](https://boxfuse.com)-使用不可变基础结构原理将JVM应用程序部署到AWS. - Capsule -简单而强大的打包和部署. 类固醇上的胖JAR,或支持JVM优化的容器的“ Java Docker”. - Central Repository -最大的二进制组件存储库,可作为开源社区的免费服务. Apache Maven使用的默认值,并且在所有其他构建工具中可用. -[Cloudsmith![c]](https://cloudsmith.io)-完全托管的软件包管理SaaS,支持Maven / Gradle / SBT. - IzPack -用于跨平台部署的安装创作工具. -[JitPack![c]](https://jitpack.io)-GitHub的易于使用的软件包存储库. 按需构建Maven / Gradle项目,并发布即用型软件包. -[Nexus![c]](https://www.sonatype.com/nexus/solution-overview)-具有代理和缓存功能的二进制管理. - packr -打包JAR,资产和JVM,以便在Windows,Linux和Mac OS X上进行本机分发. - really-executable-jars-maven-plugin -用于制作自动执行的JAR的Maven插件.

Document Processing

_协助处理Office文档格式的库.

  • Apache POI -支持OOXML(XLSX,DOCX,PPTX)以及OLE2(XLS,DOC或PPT).
  • documents4j -使用第三方转换器(例如MS Word)进行文档格式转换的API.
  • docx4j -创建和操作Microsoft Open XML文件.
  • zerocell -基于注释的API,用于将数据从Excel工作表读取到POJO中,以减少开销为重点.

Formal Verification

正式方法工具:证明助手,模型检查,符号执行等

  • CATG -Concolic单元测试引擎. 使用形式化方法自动生成单元测试.
  • Checker Framework -可插拔式系统. 包括无效类型,物理单位,不变性类型等. (仅限GPL-2.0,带Classpath-exception-2.0)
  • Daikon -检测可能的程序不变式,并根据这些不变式生成JML规范.
  • Java Path Finder (JPF) -JVM正式验证工具,其中包含模型检查器等. 由NASA创建.
  • JMLOK 2.0 -通过反馈定向的随机测试生成来检测代码与JML规范之间的不一致,并为每个检测到的不一致提出可能的原因. (仅限GPL-3.0)
  • KeY -正式的软件开发工具,旨在尽可能无缝地集成面向对象软件的设计,实现,形式规范和形式验证. 使用JML进行规范,并使用符号执行进行验证. (GPL-2.0或更高版本)
  • OpenJML -将JML规范转换为SMT-LIB格式,并将程序隐含的证明问题传递给后端求解器. (仅限GPL-2.0)

Functional Programming

_促进函数式编程的库.

  • cyclops-react -Monad和流实用程序,理解力,模式匹配,所有JDK集合的功能扩展,将来的流,蹦床等.
  • derive4j -Java 8注释处理器和框架,用于导出代数数据类型的构造函数,模式匹配和态射. (仅限GPL-3.0)
  • Fugue -番石榴的功能扩展.
  • Functional Java -实现许多基本和高级编程抽象,以协助面向合成的开发.
  • jOOλ -对Java 8的扩展,旨在通过提供许多缺失的类型和一组丰富的顺序Stream API添加来弥补lambda中的空白.
  • protonpack -流实用程序的集合.
  • StreamEx -增强了Java 8流.
  • Vavr -提供持久数据类型和功能控制结构的功能组件库.

Game Development

支持游戏开发的框架.

  • FXGL -JavaFX游戏开发框架.
  • jMonkeyEngine - Game engine for modern 3D development.
  • libGDX -全方位的跨平台高级框架.
  • LWJGL -健壮的框架,可提取OpenGL / CL / AL等库.

Geospatial

_用于处理地理空间数据和算法的库.

  • Apache SIS -用于开发地理空间应用程序的库.
  • Geo -Java中的GeoHash实用程序.
  • Geotoolkit.org -用于开发地理空间应用程序的库. 建立在Apache SIS项目之上. (仅限LGPL-2.1)
  • GeoTools -提供地理空间数据工具的库. (仅限LGPL-2.1)
  • GraphHopper -路由引擎. 用作Java库或独立的Web服务.
  • H2GIS -H2数据库的空间扩展. (仅限LGPL-3.0)
  • Jgeohash -使用GeoHash算法的库.
  • Mapsforge -基于OpenStreetMap数据的地图渲染. (仅限LGPL-3.0)
  • Spatial4j -通用空间/地理空间库.

GUI

_创建现代图形用户界面的库.

  • JavaFX -Swing的后继者.
  • Scene Builder -JavaFX应用程序的可视布局工具.
  • SWT -标准窗口小部件工具包,图形化窗口小部件工具包.

High Performance

_有关从集合到特定库的高性能计算的所有内容.

  • Agrona -高性能应用程序中常见的数据结构和实用程序方法.
  • Disruptor -线程间消息传递库.
  • Eclipse Collections -受Smalltalk启发的收藏框架.
  • fastutil -快速而紧凑的类型专用集合.
  • HPPC -原始集合.
  • JCTools -JDK当前缺少并发工具.
  • Koloboke -哈希集和哈希图.

HTTP Clients

_协助创建HTTP请求和/或绑定响应的库.

  • Armeria -基于Java 8,Netty,HTTP / 2,Thrift和gRPC构建的异步RPC / REST客户端/服务器库.
  • Async Http Client -异步HTTP和WebSocket客户端库.
  • Feign -受Retrofit,JAXRS-2.0和WebSocket启发的HTTP客户端绑定程序.
  • OkHttp -HTTP + SPDY客户端.
  • Play WS -具有反应式流和缓存的Typesafe客户端.
  • restQL-core-java -微服务查询语言,可从多个服务中获取信息.
  • Retrofit -Typesafe REST客户端.
  • Ribbon -在云中经过实战测试的客户端IPC库.
  • Riptide -Spring的RestTemplate的客户端响应路由.
  • unirest-java -简化的轻量级HTTP客户端库.

Hypermedia Types

_处理到超媒体类型的序列化的库.

IDE

_试图简化开发多个方面的集成开发环境.

  • Eclipse -建立了支持许多插件和语言的开源项目. -[IntelliJ IDEA![c]](https://www.jetbrains.com/idea)-支持许多JVM语言并为Android开发提供了不错的选择. 商业版针对企业部门.
  • jGRASP -创建用于提供与调试器结合使用的软件可视化效果,例如控件结构图,UML类图和对象查看器.
  • NetBeans -提供从数据库访问到HTML5的多个Java SE和EE功能的集成.
  • Visual Studio Code -通过使用内部市场的扩展,以简单,现代的工作流程为轻量项目提供Java支持.

Imagery

_可协助创建,评估或处理图形图像的库.

  • Imgscalr -以纯Java 2D实现的简单,高效且硬件加速的图像缩放库.
  • Tess4J -用于Tesseract OCR API的JNA包装器.
  • Thumbnailator -高质量的缩略图生成库.
  • TwelveMonkeys -扩展了支持的图像文件格式数量的插件集合.
  • ZXing -多格式1D / 2D条码图像处理库.
  • image-comparison -比较两个大小相同的图像,并通过绘制矩形直观地显示差异.

Introspection

_帮助简化和更快使用Java自省和反射API的库.

  • ClassGraph -ClassGraph(以前的FastClasspathScanner)是适用于Java,Scala,Kotlin和其他JVM语言的超快速,超轻量,并行化的类路径扫描器和模块扫描器.
  • jOOR -jOOR代表面向对象的反射. 它是java.lang.reflect包的简单包装.
  • Mirror -创建Mirror是为了解决一个简单的问题,通常称为ReflectionUtil,该问题几乎在所有依赖反射来执行高级任务的项目中都存在.
  • Objenesis -允许没有默认构造函数的动态实例化,例如,具有必需参数,副作用或抛出异常的构造函数.
  • ReflectASM -ReflectASM是一个非常小的Java库,它通过使用代码生成提供高性能的反射.
  • Reflections -Reflections扫描您的类路径,为元数据建立索引,使您可以在运行时对其进行查询,并可以保存和收集项目中许多模块的信息.

Job Scheduling

用于安排后台作业的库.

  • Quartz -功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中.
  • Sundial -轻型框架,可以简单地定义作业,定义触发器和启动调度程序.
  • Wisp -具有最少资源占用和简单API的简单库.
  • db-scheduler -持久且群集友好的调度程序.

JSON

_用于在Java对象之间进行JSON序列化和反序列化的库.

  • DSL-JSON -具有高级编译时数据绑定的JSON库.
  • Genson -强大且易于使用的Java到JSON转换库.
  • Gson -将对象序列化为JSON,反之亦然. 即时使用性能良好.
  • HikariJSON -高性能JSON解析器,比Jackson快2倍.
  • jackson-modules-java8 -用于Java 8数据类型和功能的Jackson模块集.
  • Jackson-datatype-money -开源Jackson模块,支持JSON序列化和JavaMoney数据类型的反序列化.
  • Jackson -与GSON类似,但是如果您需要更频繁地实例化库,则可以提高性能.
  • JSON-io -将Java转换为JSON. 将JSON转换为Java. 漂亮的打印JSON. Java JSON序列化器.
  • jsoniter -具有迭代器和惰性分析API的快速灵活的库.
  • LoganSquare -基于Jackson的流API的JSON解析和序列化库. 优于GSON和Jackson的资料库.
  • Moshi -现代化的JSON库,不那么固执己见,并使用诸如List和Map之类的内置类型.
  • Yasson -类和JSON文档之间的绑定层类似于JAXB.

JSON Processing

_用于处理JSON格式的数据的库.

  • fastjson -非常快速的处理器,没有其他依赖项和完整的数据绑定.
  • Jolt -JSON到JSON转换工具.
  • JsonPath -使用类似XPATH的语法从JSON提取数据.
  • JsonSurfer -专用于处理大型和复杂的JSON数据的流JsonPath处理器.

JVM and JDK

_JVM / JDK的当前实现.

  • Adopt Open JDK -社区驱动的OpenJDK构建,包括HotSpot和OpenJ9.
  • Avian -具有JIT,AOT模式和iOS端口的JVM.
  • Corretto -由Amazon提供的OpenJDK的免费,多平台,生产就绪的发行版. (仅限GPL-2.0,带Classpath-exception-2.0)
  • Graal -Polyglot可嵌入的JVM. (仅限GPL-2.0,带Classpath-exception-2.0)
  • Liberica JDK -由OpenJDK构建,经过全面测试并通过了JCK. (仅限GPL-2.0,带Classpath-exception-2.0)
  • OpenJ9 -高性能,企业级,灵活许可,开放管理的跨平台JVM,扩展并增强了Eclipse OMR和OpenJDK项目中的运行时技术组件.
  • Open JDK -打开JDK社区主页. (仅限GPL-2.0,带Classpath-exception-2.0)
  • ParparVM - VM with non-blocking, concurrent GC for iOS. (GPL-2.0-only WITH Classpath-exception-2.0)
  • RedHat Open JDK -RedHat的OpenJDK发行版. (仅限GPL-2.0,带Classpath-exception-2.0)
  • SAP Machine -SAP的免费软件,经过严格测试并经过JCK验证的OpenJDK友好fork. (仅限GPL-2.0,带Classpath-exception-2.0)
  • Zulu -OpenJDK为Windows,Linux和Mac OS X构建.(仅GPL-2.0,带Classpath-exception-2.0)

Logging

_记录应用程序行为的库.

  • Apache Log4j 2 -使用功能强大的插件和配置架构完全重写.
  • Graylog -适用于扩展角色和权限管理的开源聚合器. (仅限GPL-3.0)
  • Kibana -分析和可视化日志文件. 有些功能需要付费.
  • Logback -健壮的日志库,通过Groovy提供有趣的配置选项.
  • Logbook -可扩展的开放源代码库,用于HTTP请求和响应日志记录.
  • Logstash -用于管理日志文件的工具.
  • p6spy -启用所有JDBC事务的日志记录,而无需更改代码.
  • SLF4J -抽象层/简单的日志外观.
  • tinylog -具有静态记录器类的轻量级记录框架.
  • Tracer -分布式系统中的呼叫跟踪和日志关联.

Machine Learning

提供用于从数据中学习的特定统计算法的工具.

  • Apache Flink -快速,可靠的大规模数据处理引擎.
  • Apache Mahout -专注于协作过滤,聚类和分类的可扩展算法.
  • Apache Spark -数据分析集群计算框架.
  • DatumBox -提供几种用于自然语言处理的算法和预先训练的模型.
  • DeepDive -从非结构化数据创建结构化信息,并将其集成到现有数据库中.
  • Deeplearning4j -分布式和多线程深度学习库.
  • H2O -用于大数据统计的分析引擎.
  • JSAT -用于预处理,分类,回归和聚类的算法,并支持多线程执行. (仅限GPL-3.0)
  • Oryx 2 -用于构建实时,大规模机器学习应用程序的框架. 包括用于协同过滤,分类,回归和集群化的端到端应用程序.
  • Smile -统计机器智能和学习引擎提供了一组机器学习算法和可视化库.
  • Weka -收集用于从预处理到可视化的数据挖掘任务的算法. (仅限GPL-3.0)

Messaging

帮助客户端之间发送消息以确保协议独立性的工具.

  • Aeron -高效,可靠的单播和多播消息传输.
  • Apache ActiveMQ -实现JMS并将同步转换为异步通信的消息代理.
  • Apache Camel -通过企业集成模式将不同的传输API粘合在一起.
  • Apache Kafka -高吞吐量的分布式消息传递系统.
  • Apache Pulsar -分布式发布/子消息系统.
  • Apache RocketMQ -快速,可靠且可扩展的分布式消息传递平台.
  • Apache Qpid -Apache Qpid开发了使用AMQP并支持多种语言和平台的消息传递工具.
  • EventBus -简单的发布/订阅事件总线.
  • Hermes -建立在Kafka之上的快速可靠的消息代理.
  • JeroMQ -实施ZeroMQ.
  • Nakadi -在Kafka之上提供RESTful API.
  • RabbitMQ Java client -RabbitMQ客户端.
  • Smack -跨平台XMPP客户端库.
  • NATS client -NATS客户.

Miscellaneous

其他一切

  • Codename One -用于编写本机移动应用程序的跨平台解决方案. (仅限GPL-2.0,带Classpath-exception-2.0)
  • CQEngine -对Java集合的超快速,类似SQL的查询.
  • Design Patterns -实施和解释最常见的设计模式.
  • Failsafe -通过重试和断路器进行简单的故障处理.
  • FF4J -Java的功能标志.
  • FizzBuzz Enterprise Edition -认真的商人出于认真的商业目的而实施的FizzBu​​zz,这是胡说八道. (无明确许可)
  • J2ObjC -Java-to-Objective-C转换器,用于将Android库移植到iOS.
  • JavaCV -OpenCV,FFmpeg等的Java接口.
  • JavaX -以简化为重心,重新发明和扩展Java. (无明确许可)
  • JBake -静态网站生成器.
  • JBot -构建聊天机器人的框架. (仅限GPL-3.0)
  • JCuda -JCuda为CUDA和与CUDA相关的库提供Java绑定.
  • Jimfs -内存文件系统.
  • Joda-Money -JDK未提供的基本货币和货币类以及算法.
  • JPad -片段跑步者.
  • Maven Wrapper -用于Maven的Gradle Wrapper的类比,允许在不安装maven的情况下构建项目.
  • Membrane Service Proxy -用Java编写的开源反向代理框架.
  • MinimalFTP -轻巧,小型且可自定义的FTP服务器.
  • Modern Java - A Guide to Java 8 -流行的Java 8指南.
  • Modernizer -检测旧版Java API的使用.
  • Multi-OS Engine -开源,跨平台引擎,用于开发本机移动(iOS,Android等)应用程序.
  • OpenRefine -处理混乱数据的工具:清理,转换,使用Web服务扩展它并将其链接到数据库.
  • PipelinR –小型实用程序库,用于将处理程序和命令与管道一起使用.
  • Polyglot for Maven -Maven 3.3.1+的扩展允许以非XML的方言编写POM模型.
  • Smooks -用于构建处理数据的应用程序的可扩展框架,这意味着绑定,转换,消息处理和扩充. (仅限LGPL-3.0)
  • Togglz -实现功能切换模式.
  • TypeTools -解决泛型类型的工具.
  • XMLBeam -通过在代码中使用注释或XPath处理XML.
  • OctoLinker -浏览器扩展,可更有效地浏览GitHub上的代码.

Microservice

_用于创建和管理微服务的工具.

  • Apollo -用于编写可组合微服务的库.
  • consul-api -客户 Consul API:一种分布式的,高度可用的且支持数据中心的注册表/发现服务.
  • Eureka -基于REST的服务注册表,可实现弹性负载平衡和故障转移.
  • Helidon -两种编写微服务的方式:功能响应型和作为实现 MicroProfile.
  • Lagom -用于创建基于微服务的系统的框架.
  • Micronaut -现代全栈框架,重点放在模块化,最小的内存占用和启动时间上.

Monitoring

_监视生产中的应用程序的工具.

-[AppDynamics![c]](https://www.appdynamics.com)-性能监视器. - Automon -将AOP的功能与监视和/或记录工具结合在一起. -[BugSnag![c]](https://www.bugsnag.com)-异常和错误监视,集成了多个第三方工具,以改善工作流程和免费的业余爱好者层. - LeakCanary -内存泄漏检测. - Failsafe Actuator -在弹簧引导环境中对故障安全断路器进行开箱即用的监视. - Glowroot -开源Java APM. - inspectIT -通过可随时更改的挂钩捕获详细的运行时信息. 它支持通过OpenTracing API跟踪多个系统,并且可以将数据与最终用户监视相关联. -[Instrumental![c]](https://instrumentalapp.com)-实时Java应用程序性能监视. 具有免费开发帐户的商业服务. - JavaMelody -性能监控和性能分析. - Jaeger client -Jaeger客户. - jmxtrans -连接到多个JVM,并通过JMX查询它们的属性. 它的查询语言基于JSON,它允许非Java程序员访问JVM属性. 支持不同的输出写入,包括Graphite,Ganglia和StatsD. - Jolokia -通过REST的JMX. -[Kamon![c]](https://kamon.io)-用于监视在JVM上运行的应用程序的工具. - Metrics -通过JMX或HTTP公开指标,并将其发送到数据库. -[New Relic![c]](https://newrelic.com)-性能监视器. -[Datadog![c]](https://docs.datadoghq.com/tracing/setup/java)-现代监控和分析. - nudge4j -Java 8浏览器通过字节码注入从远程开发者控制台. -[OverOps![c]](https://www.overops.com)-生产中的错误监视和调试. - Pinpoint -开源APM工具. - Prometheus -提供多维数据模型,DSL,自治服务器节点等. -[SPM![c]](https://sematext.com/spm)-具有针对JVM应用程序分发事务跟踪的性能监视器. - Stagemonitor -JVM应用程序的开源性能监视和事务跟踪. - Sysmon -用于Java VM的轻量级平台监视工具. - zipkin -分布式跟踪系统,该系统收集解决微服务体系结构中的延迟问题所需的时序数据.

Native

_用于使用特定于平台的本机库.

  • JavaCPP -提供对本地C ++的高效便捷访问.
  • JNA -使用本机库而无需编写JNI. 还提供了常见系统库的接口.
  • JNR -使用本机库而无需编写JNI. 还提供了常见系统库的接口. 与JNA的目标相同,但速度更快,并且是即将到来的基础 Project Panama.

Natural Language Processing

Libraries that specialize in processing text.

  • Beagle -存储全文本搜索查询引擎.
  • CogCompNLP -提供用于普通文本输入的通用注释器. (研究和学术使用许可)
  • CoreNLP -为标记,命名实体识别和情感分析等任务提供了一组基本工具. (GPL-3.0或更高版本)
  • DKPro -收集可重复使用的NLP工具,用于语言预处理,机器学习,词汇资源等.
  • Lingua -自然语言检测库,特别适合短文本段.
  • LingPipe -用于从POS标记到情感分析的任务的工具包.

Networking

_用于构建网络服务器的库.

  • AkkaGRPC -支持在Akka流之上构建流gRPC服务器和客户端.
  • Comsat -将标准Java Web相关的API与Quasar光纤和参与者集成在一起.
  • Dubbo -高性能RPC框架.
  • Finagle -用于构建高并发服务器的可扩展RPC系统. 它为几种协议实现统一的客户端和服务器API,并且与协议无关,以简化新协议的实现.
  • Grizzly -NIO框架. 在Glassfish中用作网络层.
  • gRPC -基于protobuf和HTTP / 2的RPC框架.
  • KryoNet -提供干净,简单的API,以使用NIO和Kryo​​进行有效的TCP和UDP客户端/服务器网络通信.
  • MINA -抽象的,事件驱动的异步I / O API,用于通过Java NIO在TCP / IP和UDP / IP上进行网络操作.
  • Netty -构建高性能网络应用程序的框架.
  • Nifty -在Netty上实现Thrift客户端和服务器.
  • ServiceTalk -基于Netty构建的框架,具有针对特定协议量身定制的API,并支持多种编程范例.
  • sshj -以编程方式使用SSH,SCP或SFTP.
  • TLS Channel -通过SSLEngine实现ByteChannel接口,从而启用易于使用的(类似于套接字的)TLS.
  • Undertow -提供基于NIO的阻塞和非阻塞API的Web服务器. 在WildFly中用作网络层. (仅限LGPL-2.1)
  • urnlib -表示,解析和编码URN,如RFC 2141中所示.(仅GPL-3.0)

ORM

_用于处理对象持久性的API.

  • Apache Cayenne -提供干净,静态的API用于数据访问. 还包括一个GUI Modeler,用于处理数据库映射以及数据库反向工程和生成.
  • Doma 2 -数据库访问框架,该数据库访问框架在编译时使用注释处理以及称为双向SQL的本机SQL模板来验证和生成源代码.
  • Ebean -提供简单快速的数据访问.
  • EclipseLink -支持多种持久性标准:JPA,JAXB,JCA和SDO.
  • Hibernate -健壮且广泛使用,拥有活跃的社区. (仅限LGPL-2.1)
  • MyBatis -将对象与存储过程或SQL语句耦合.
  • SimpleFlatMapper -简单的数据库和CSV映射器.

PaaS

Java平台即服务.

-[AWS Elastic Beanstalk![c]](https://aws.amazon.com/elasticbeanstalk)-基于AWS的,支持Tomcat和Jetty. -[AWS Lambda![c]](https://aws.amazon.com/lambda)-无服务器计算. -[Google App Engine![c]](https://cloud.google.com)-Google基础架构上的PaaS. -[Heroku![c]](https://www.heroku.com)-抽象计算环境. -[Jelastic![c]](https://jelastic.com)-支持Tomcat,Jetty,GlassFish,JBoss,TomEE和WildFly. -[OpenShift Enterprise![c]](https://www.openshift.com)-本地解决方案.

PDF

帮助创建PDF文件的工具.

Performance analysis

_用于性能分析,性能分析和基准测试的工具.

-[fastThread![c]](http://fastthread.io)-使用免费的基于云的上传界面分析和可视化线程转储. -[GCeasy![c]](http://gceasy.io)-分析和可视化GC日志的工具. 它提供了一个免费的基于云的上传界面. - honest-profiler -低开销,无偏差的采样分析器. - jHiccup -记录和记录平台JVM停顿. - JITWatch -分析HotSpot JVM进行的JIT编译器优化. - JMH -Java工具,用于构建,运行和分析用Java和其他针对JVM的其他语言编写的nano / micro / milli / macro基准测试. (仅GPL-2.0和Classpath-exception-2.0) -[JProfiler![c]](https://www.ej-technologies.com/products/jprofiler/overview.html)-带有JEE支持的JDBC,JPA和NoSQL数据库分析. - LatencyUtils -延迟测量和报告实用程序. -[XRebel![c]](https://zeroturnaround.com/software/xrebel)-带有浏览器内窗口小部件的Web应用程序实时配置. -[YourKit Java Profiler![c]](https://www.yourkit.com/features)-适用于JVM上运行的任何应用程序的Profiler.

Platform

_框架是包含多个类别的多个库的套件.

Apache Commons

  • BCEL -字节码工程库-分析,创建和操作Java类文件.
  • BeanUtils -围绕Java反射和自省API的易于使用的包装器.
  • BeanUtils2 -重新设计Commons BeanUtils.
  • BSF -Bean脚本框架-脚本语言(包括JSR-223)的接口.
  • Chain -责任链模式实施.
  • ClassScan -查找类接口,方法,字段和注释而无需加载.
  • CLI - Command-line arguments parser.
  • CLI2 重新设计Commons CLI.
  • Codec -通用的编码/解码算法(例如,语音,base64,URL).
  • Collections -扩展或扩充Java Collections Framework.
  • Compress -定义用于处理tar,zip和bzip2文件的API.
  • Configuration -读取各种格式的配置/首选项文件.
  • Convert -Commons-Convert旨在提供一个单一的库,专门用于将一种类型的对象转换为另一种类型的对象.
  • CSV -用于读取和写入逗号分隔值文件的组件.
  • Daemon -类似于Unix守护程序的Java代码的替代调用机制.
  • DBCP -数据库连接池服务.
  • DbUtils -JDBC帮助程序库.
  • Digester -XML到Java对象的映射实用程序.
  • Email -用于从Java发送电子邮件的库.
  • Exec -用Java处理外部流程执行和环境管理的API.
  • FileUpload -用于Servlet和Web应用程序的文件上传功能.
  • Finder -受UNIX find命令启发的Java库.
  • Flatfile -用于处理平面数据结构的Java库.
  • Functor -函子是可以作为对象或代表单个通用函数的对象进行操作的函数.
  • Graph -通用图形API和算法.
  • I18n -添加了由一个或多个属于一起的本地化文本组成的本地化消息包的功能.
  • Id -ID是用于生成标识符的组件.
  • Imaging -纯Java图像库.
  • IO -收集I / O实用程序.
  • Javaflow -继续实施以捕获应用程序的状态.
  • JCI -Java编译器接口.
  • JCS -Java缓存系统.
  • Jelly -基于XML的脚本和处理引擎.
  • Jexl -扩展JSTL的表达语言的表达语言.
  • JNet -JNet允许通过java.net API动态使用注册的URL流处理程序.
  • JXPath -使用XPath语法处理Java Bean的实用程序.
  • Lang -为java.lang中的类提供额外的功能.
  • Logging 包装各种日志API的实现.
  • Math -轻巧,独立的数学和统计组件.
  • Monitoring -监视旨在为Java应用程序提供一个简单但可扩展的监视解决方案.
  • Nabla -Nabla提供了自动区分类,可以生成以Java语言实现的任何功能的派生类.
  • Net -网络实用程序和协议实现的集合.
  • OGNL -对象图导航语言.
  • OpenPGP -使用OpenPGP签名和验证数据的接口.
  • Performance -用于微基准测试客户端的小型框架,具有Commons DBCP和Pool的实现.
  • Pipeline -提供一组围绕工作队列设计的管道实用程序,这些工作并行运行以顺序处理数据对象.
  • Pool -通用对象池组件.
  • Proxy -用于创建动态代理的库.
  • RDF -RDF 1.1的通用实现,可以由JVM上的系统实现.
  • RNG -Commons Rng提供了伪随机数生成器的实现.
  • SCXML -状态图XML规范的实现,旨在创建和维护Java SCXML引擎.
  • Validator -在xml文件中定义验证器和验证规则的框架.
  • VFS -虚拟文件系统组件,用于将文件,FTP,SMB,ZIP等视为单个逻辑文件系统.
  • Weaver -提供一种简单的方法来增强(编织)已编译的字节码.

Other

  • CUBA Platform -基于Spring,EclipseLink和Vaadin的具有丰富Web界面的企业应用程序开发高级框架.
  • Light-Java -具有内置功能的快速,轻量级且高效的微服务框架 security.
  • Orienteer -开源业务应用程序平台,用于快速配置/开发CRM,ERP,LMS和其他应用程序.
  • Spring -提供许多用于依赖项注入,面向方面的编程,安全性等的程序包.

Processes

_帮助管理操作系统进程的库.

Reactive libraries

_用于开发响应式应用程序的库.

  • Akka -用于构建并发,分布式,容错和事件驱动的应用程序的工具包和运行时.
  • Reactive Streams -为无阻塞背压的异步流处理提供标准.
  • Reactor -用于构建反应性快速数据应用程序的库.
  • RxJava -允许使用可观察的序列组成异步和基于事件的程序.
  • vert.x -Polyglot事件驱动的应用程序框架.

REST Frameworks

_专门用于创建RESTful服务的框架.

  • Dropwizard -通过Jetty,Jackson,Jersey和Metrics建立现代Web应用程序的自有框架.
  • Elide -基于JPA数据模型的JSON-或GraphQL-API的框架.
  • javalin -Javalin只是Jetty上的几千行代码,这意味着它的性能几乎等同于纯Jetty.
  • Jersey -JAX-RS参考实现.
  • Microserver —用于Spring和Spring Boot的便捷,可扩展的微服务插件系统. 随着30多个插件的不断发展,它支持微独石和纯微服务样式.
  • Rapidoid -一个简单,安全且非常快速的框架,由嵌入式HTTP服务器,GUI组件和依赖项注入组成.
  • rest.li -使用端到端开发人员工作流的类型安全绑定和异步,无阻塞IO构建健壮的,可扩展的RESTful架构的框架,该端到端的开发人员工作流可促进简洁的做法,统一的界面设计和一致的数据建模.
  • RESTEasy -JAX-RS规范的完整认证和可移植实施.
  • RestExpress -JBoss Netty HTTP堆栈上的精简包装器,可提供扩展和性能.
  • Restlet Framework -具有强大的路由和过滤功能以及统一的客户端和服务器API的开拓性框架.
  • Spark -Sinatra启发框架.
  • Crnk -实施JSON API规范,以建立具有排序,过滤,分页,链接,对象图,类型安全,批量更新,集成等功能的面向资源的REST端点.
  • Swagger -REST API的标准,与语言无关的接口.

Science

_用于科学计算,分析和可视化的库.

  • DataMelt -科学计算,数据分析和数据可视化的环境. (GPL-3.0或更高版本)
  • Erdos -用于理论算法的模块化,轻巧易用的图形框架.
  • GraphStream -用于建模和分析动态图的库.
  • JFreeChart -用于Swing,JavaFX和服务器端应用程序的2D图表库. (仅限LGPL-2.1)
  • JGraphT -提供数学图形理论对象和算法的图形库.
  • JGraphX -用于可视化(主要是Swing)并与节点边缘图进行交互的库.
  • Mines Java Toolkit -用于地球物理科学计算,可视化和数字信号分析的库.
  • Morpheus -提供称为DataFrame的通用二维内存高效表格式数据结构,以实现对JVM上的科学计算进行高效的内存中分析.
  • Orson-Charts -生成可以与Swing和JavaFX一起显示或导出为PDF,SVG,PNG和JPEG的各种各样的3D图表. (仅限GPL-3.0)
  • Tablesaw -包括数据框,嵌入式列存储以及数百种用于转换,汇总或过滤数据的方法.
  • XChart -用于绘制数据的轻量级库. 有许多可定制的图表类型.

_将文档编入索引以进行搜索和分析的引擎.

  • Apache Lucene -高性能,全功能,跨平台的文本搜索引擎库.
  • Apache Solr -针对大流量进行了优化的企业搜索引擎.
  • Elasticsearch -具有RESTful Web界面和无模式JSON文档的分布式,多租户,全文本搜索引擎.
  • Indexer4j -简单轻巧的全文本索引和搜索库.

Security

_处理安全性,身份验证,授权或会话管理的库.

  • Apache Shiro -执行身份验证,授权,加密和会话管理.
  • Bouncy Castle -通用的加密库和JCA提供程序,提供从基本帮助程序到PGP / SMIME操作的广泛功能.
  • Cryptomator -云中文件的多平台,透明,客户端加密. (仅限GPL-3.0)
  • Hdiv -排除OWASP Top 10中包含的应用程序安全风险的运行时应用程序,包括SQL注入,跨站点脚本,跨站点请求伪造,数据篡改和暴力攻击.
  • jjwt -适用于Java和Android的JSON网络令牌.
  • Jwks RSA -JSON Web密钥集解析器.
  • Kalium -绑定网络和密码学(NaCl)库.
  • Keycloak -用于浏览器应用程序和RESTful Web服务的集成SSO和IDM.
  • Keywhiz -分发和管理机密的系统.
  • Nbvcxz -高级密码强度估算.
  • OACC -提供基于权限的授权服务.
  • pac4j -安全引擎.
  • SecurityBuilder -用于JCA和JSSE类的Fluent Builder API,尤其是X.509证书.
  • Themis 多平台高级密码库提供了易于使用的加密来保护敏感数据:具有前向保密性的安全消息传递,安全数据存储(AES256GCM); 适用于构建端到端的加密应用程序.
  • Tink -为常见的加密任务提供了一个简单且防误用的API.
  • Vault -保护,存储和严格控制对令牌,密码,证书,API密钥和其他机密的访问. 它处理租赁,密钥撤销,密钥滚动和审计. 通过统一的API,用户可以访问加密的键/值存储和网络加密即服务,或生成AWS IAM / STS凭证,SQL / NoSQL数据库,X.509证书,SSH凭证等.

Serialization

_高效处理序列化的库.

  • FlatBuffers -内存高效的序列化库,可以访问序列化的数据而无需解压缩和分析它们.
  • FST -兼容JDK的高性能对象图序列化.
  • Kryo -快速高效的对象图序列化框架.
  • MessagePack -高效的二进制序列化格式.
  • PHP Serializer -以PHP序列化格式序列化对象.

Server

_专门用于部署应用程序的服务器.

  • Apache Tomcat -用于Servlet和JSP的功能强大的全方位服务器.
  • Apache TomEE -Tomcat和Java EE.
  • Jetty -提供Web服务器和javax.servlet容器,以及对HTTP / 2,WebSocket,OSGi,JMX,JNDI,JAAS和许多其他集成的支持.
  • nanohttpd -微型,易于嵌入的HTTP服务器. -[WebSphere Liberty![c]](https://developer.ibm.com/wasdev)-由IBM开发的轻量级模块化服务器. (仅限GPL-2.0)
  • WildFly -原名JBoss,由Red Hat开发,具有广泛的Java EE支持. (仅限LGPL-2.1)

Template Engine

在模板中替换表达式的工具.

  • Handlebars.java -无逻辑和语义的Moustache模板.
  • Jade4J -实施Pug(以前称为Jade).
  • Jtwig -模块化,可配置且经过全面测试的模板引擎.
  • Pebble -受Twig的启发,并以其继承功能和易于阅读的语法而与众不同. 它带有内置的自动转义功能以确保安全性,并且包括对国际化的集成支持.
  • Rocker -优化,内存高效且快速的模板引擎,可生成静态类型的普通对象.
  • Thymeleaf -旨在替代JSP并适用于XML文件.

Testing

从模型到视图进行测试的工具.

Asynchronous

简化异步服务测试的工具.

  • Awaitility -用于同步异步操作的DSL.
  • ConcurrentUnit -用于测试多线程和异步应用程序的工具包.
  • GreenMail -用于集成测试的内存电子邮件服务器. 支持SMTP,POP3和IMAP(包括SSL). (仅限GPL-2.0)
  • Hoverfly Java -Hoverfly的本机绑定,Hoverfly是一个代理,可用来模拟HTTP服务.
  • REST Assured -DSL,可轻松测试REST / HTTP服务.

BDD

_对TDD中出现的,受DDD和OOAD严重影响的软件开发过程进行测试.

  • Cucumber -提供一种以普通语言描述功能的方法,客户可以理解.
  • Cukes-REST -用于使用Cucumber进行REST服务测试的Gherkin步骤的集合.
  • J8Spec -遵循类似Jasmine的语法.
  • JBehave -描述故事的可广泛配置的框架.
  • JGiven -提供流利的API,可以简化组成.
  • Lamdba Behave -旨在提供流利的API,以长而描述性的句子编写测试,使句子看起来像普通的英语.
  • Serenity BDD -与Cucumber,JBehave和JUnit一起使用的自动验收测试和报告库,使编写高质量的可执行规范变得更加容易.

Fixtures

_与创建和处理随机数据有关的一切.

Frameworks

_提供环境以针对特定用例运行测试.

  • ArchUnit -用于指定和声明体系结构规则的测试库.
  • Apache JMeter -功能测试和性能测量.
  • Arquillian - Integration and functional testing platform for Java EE containers.
  • Citrus -集中于客户端和服务器端消息传递的集成测试框架.
  • Gatling -旨在简化易用性,可维护性和高性能的负载测试工具.
  • JUnit -通用的测试框架.
  • Pact JVM -消费者驱动的合同测试.
  • PIT -快速的突变测试框架,用于评估现有JUnit或TestNG测试套件的故障检测能力.

Matchers

_提供自定义匹配项的库.

  • AssertJ -流利的断言可提高可读性.
  • Hamcrest -可以组合以创建灵活的意图表达的匹配器.
  • JSONAssert -简化了JSON字符串的测试.
  • Truth -Google流畅的主张和主张框架.
  • XMLUnit -简化了XML输出的测试.

Miscellaneous

与测试有关的其他内容.

  • junit-dataprovider -JUnit的类似TestNG的数据提供程序/运行程序.
  • Mutability Detector -报告给定类的实例是否不可变.
  • raml-tester -测试请求/响应是否匹配给定的RAML定义.
  • TestContainers -提供普通数据库,Selenium Web浏览器或其他可以在Docker容器中运行的其他东西的一次性实例.
  • pojo-tester -对基本的POJO方法自动执行测试. (仅限LGPL-3.0)

Mocking

_模拟合作者以帮助测试单个隔离单元的工具.

  • JMockit -集成测试,API模拟和伪造以及代码覆盖率.
  • Mockito -模拟框架,可让您使用干净简单的API编写测试.
  • MockServer -允许模拟与HTTPS集成的系统.
  • Moco -用于存根和模拟的简洁Web服务.
  • PowerMock -嘲笑静态方法,构造函数,最终类和方法,私有方法以及静态初始化程序的删除.
  • WireMock -存根和模拟网络服务.

Utility

_提供一般实用程序功能的库.

  • bucket4j -基于令牌桶算法的速率限制库.
  • cactoos -面向对象原语的集合.
  • CRaSH -为运行CRaSH的JVM提供外壳程序. 由Spring Boot和其他人使用. (LGPL-2.1或更高版本)
  • Dex -具备强大的ETL和数据可视化功能的Java / JavaFX工具.
  • Embulk -批量数据加载器,可帮助在各种数据库,存储,文件格式和云服务之间进行数据传输.
  • fswatch -微型库,用于监视目录文件系统的更改,从而简化了java.nio.file.WatchService
  • Gephi -用于可视化和操纵大型图形网络的跨平台. (仅限GPL-3.0)
  • Guava -集合,缓存,原语支持,并发库,通用批注,字符串处理,I / O等.
  • JADE -用于构建和调试多代理系统的框架和环境. (仅限LGPL-2.0)
  • JavaVerbalExpressions -帮助构建困难的正则表达式的库.
  • JGit -实现Git版本控制系统的轻量级纯Java库.
  • minio-java -提供简单的API来访问任何与Amazon S3兼容的对象存储服务器.
  • Protégé -提供本体编辑器和框架来构建基于知识的系统.
  • Underscore-java -Underscore.js函数的端口.

Version Managers

_有助于创建开发外壳环境并在不同Java版本之间切换的实用程序.

  • jabba -受nvm启发的Java版本管理器. 支持Mac OS X,Linux和Windows.
  • jenv -受rbenv启发的Java版本管理器. 可以全局配置或按项目配置. 在Debian和Mac OS X上测试.
  • SDKMan -受RVM和rbenv启发的Java版本管理器. 支持基于UNIX的平台和Windows.

Web Crawling

分析网站内容的图书馆.

  • Apache Nutch -用于生产环境的高度可扩展,高度可扩展的Web搜寻器.
  • Crawler4j -简单轻巧的网络爬虫.
  • jsoup -刮,解析,处理和清除HTML.
  • StormCrawler -用于构建低延迟和可扩展的Web搜寻器的SDK.
  • webmagic -具有下载,URL管理,内容提取和持久性的可扩展爬虫.

Web Frameworks

_处理Web应用程序各层之间的通信的框架.

  • Apache Tapestry -用于创建动态,健壮,高度可伸缩的Web应用程序的面向组件的框架.
  • Apache Wicket -与Tapestry类似的基于组件的Web应用程序框架,带有状态GUI.
  • Blade -轻巧的模块化框架,旨在变得优雅和简单.
  • Bootique -可运行的应用程序的最低限度的框架.
  • Firefly -用于快速开发高性能Web应用程序的异步框架.
  • Grails -Groovy框架,通过约定优于配置,不提供XML和对mixins的支持,提供了一个高产的环境.
  • Jooby -可扩展,快速和模块化的微框架,提供多种编程模型.
  • Ninja -全栈Web框架.
  • Pippo -小型,高度模块化的,类似于Sinatra的框架.
  • Play -建立在Akka之上,它为Java和Scala中的高度可扩展应用程序提供了可预测的最小资源消耗(CPU,内存,线程).
  • PrimeFaces -具有免费和商业/支持版本以及前端组件的JSF框架.
  • Ratpack -促进快速,高效,可发展且经过测试的HTTP应用程序的库集.
  • Takes -固执己见的Web框架,它围绕真实的面向对象编程和不变性的概念构建.
  • Vaadin Flow -使用标准Web组件的事件驱动框架. 客户端带有Ajax的服务器端体系结构.

Resources

Awesome Lists

_与Java和JVM生态系统相关的很棒的清单.

Communities

Active discussions.

Frontends

为此列表提供前端的网站. 请注意,不会有一个官方网站. 我们不与特定网站关联,每个人都可以创建一个网站.

Influential Books

_影响深远的书仍然值得一读.

Podcasts and Screencasts

_编程时要看或听的东西.

Twitter

要跟踪的有效帐户. 来自Twitter的说明.

  • Adam Bien -自由作者,JavaOne Rockstar发言人,顾问,Java Champion.
  • Aleksey Shipilëv -性能极客,基准测试沙皇,并发错误猎人.
  • Antonio Goncalves -Java冠军,JUG负责人,法国Devoxx,Java EE 6/7,JCP,作者.
  • Arun Gupta -Java冠军,JavaOne Rockstar,JUG负责人,Devoxx4Kids-er,Couchbase开发人员宣传副总裁.
  • Brian Goetz -Oracle的Java语言架构师.
  • Bruno Borges -Oracle产品经理/ Java Jock.
  • Chris Richardson -软件架构师,顾问和串行企业家,Java Champion,JavaOne Rock Star和 * POJO in Action-作者.
  • Ed Burns -Oracle技术人员的咨询成员.
  • Eugen Paraschiv -春季安全课程的作者.
  • Heinz Kabutz -Java冠军,演讲者,《 Java专家通讯》的作者,并发性能专家.
  • Holly Cummins -IBM伦敦Bluemix Garage的技术负责人,Java冠军,开发人员,作家JavaOne摇滚明星.
  • James Weaver -Java / JavaFX / IoT开发人员,作者和发言人.
  • Java EE -官方Java EE Twitter帐户.
  • Java Magazine -Java Magazine官方帐户.
  • Java -官方Java Twitter帐户.
  • Javin Paul -著名的Java博客.
  • Josh Long -Pivotal的Spring倡导者,O'Reilly的Cloud Native Java和使用Spring Boot构建微服务JavaOne Rock Star的作者.
  • Lukas Eder -Java冠军,演讲者,JUG.ch联合负责人,Data Geekery(jOOQ)的创始人兼首席执行官.
  • Mario Fusco -RedHatter,JUG协调员,常任发言人和作家.
  • Mark Heckler -Pivotal首席技术专家兼开发倡导者,会议发言人,已发表的作者和Java Champion,主要关注物联网和云.
  • Mark Reinhold -Oracle Java平台组首席架构师.
  • Markus Eisele -Java EE传播者Red Hat.
  • Martijn Verburg -伦敦JUG联合领导人,发言人,作家,Java冠军等等.
  • Martin Thompson -面对表演黑帮.
  • Monica Beckwith -JavaOne Rock Star性能顾问.
  • OpenJDK -官方OpenJDK帐户.
  • Peter Lawrey -Java性能专家Peter Lawrey.
  • Randy Shoup -Stitch Fix副总裁,JavaOne Rock Star演讲者.
  • Reza Rahman -Java EE / GlassFish / WebLogic传播者,作家,演讲者,开源黑客.
  • Sander Mak -Java Champion,作家.
  • Simon Maple -Java冠军,VirtualJUG创始人,LJC负责人,RebelLabs作者.
  • Spencer Gibb -软件工程师,父亲,极客,Spring Cloud Core @pivotal的联合创始人兼负责人.
  • Stephen Colebourne -Java Champion,演讲者.
  • Trisha Gee -Java Champion和演讲者.
  • Venkat Subramaniam -作者,休斯敦大学教授,MicroSoft MVP获奖者,JavaOne Rock Star,Java Champion.
  • Vlad Mihalcea -致力于Hypersistence Optimizer的Java Champion,数据库爱好者,《高性能Java持久性》一书的作者.

Websites

要阅读的网站.

Contributing

欢迎捐款!

请看看 CONTRIBUTING 准则.

[c]:https://cdn.rawgit.com/akullpp/23246ca832bda82bb505230bf3538e2a/raw/d9bcdb769bf025292f9c6bc1290f01f1fcd1f864/commercial.svg