精选的Java框架,库和软件的精选列表。
内容
项目
Bean Mapping
简化bean映射的框架。
Dozer - 使用注释和API或XML配置将数据从一个对象复制到另一个对象的映射器。
JMapper - 使用字节代码操作进行闪电般的快速映射。支持注释和API或XML配置。
MapStruct - 基于配置约定方法,简化不同bean类型之间映射的代码生成器。
ModelMapper - 智能对象映射库,可自动将对象相互映射。
Orika - JavaBean映射框架,用于递归地将数据以及其他功能从一个对象复制到另一个对象。
Selma - 基于注释处理器的bean映射器。
构建
处理应用程序的构建周期和依赖关系的工具。
Apache Maven - 声明性构建和依赖关系管理,有利于约定优于配置。它可能更适合Apache Ant,它使用相当程序化的方法并且难以维护。
Bazel - 来自Google的工具,可以快速可靠地构建代码。
Buck - 鼓励创建由代码和资源组成的小型可重用模块。
Gradle - 通过Groovy编程的增量构建,而不是声明XML。适用于Maven的依赖管理。
字节码操作
库以编程方式操作字节码。
ASM - 通用的低级字节码操作和分析。
Byte Buddy - 使用流畅的API进一步简化字节码生成。
bytecode-viewer - Java 8 Jar和Android APK逆向工程套件。
Byteman - 通过DSL在运行时处理字节码; 主要用于测试/故障排除。
cglib - 字节码生成库。
Javassist - 试图简化字节码编辑。
Mixin - 使用真实Java代码在运行时处理字节码。
缓存
提供缓存设施的库。
咖啡因 - 高性能,接近最佳的缓存库。
Ehcache - 分布式通用缓存。
Infinispan - 用于缓存的高度并发键/值数据存储。
CLI
与CLI相关的所有库。
ASCII表格 - 用ASCII绘制表格的库。
航空公司 - 基于注释的框架,用于解析类似Git的命令行参数。
args4j - 用于解析命令行参数的小型库。
Jansi - 用于格式化控制台输出的ANSI转义码。
Java ASCII Render - 控制台的图形基元。
JCommander - 命令行参数解析框架,包含自定义类型和通过实现接口验证。
JLine - 包括现代shell中的功能,如完成或历史记录。
JOpt Simple - 使用POSIX#getopt和GNU#getopt_long语法的流畅解析器。
picocli - 使用的ANSI颜色和样式有助于基于注释的POSIX / GNU /任何语法,子命令,强选键输入选项和位置参数。
Text-IO - 帮助创建完整的基于控制台的应用程序。
Lanterna - 简单的控制台文本GUI库,类似于curses。
集群管理
可以动态管理集群内部应用程序的框架。
Apache Aurora - 用于长期运行服务和cron作业的Mesos框架。
Apache Mesos - 从机器中提取CPU,内存,存储和其他计算资源。
Singularity - Mesos框架,使部署和操作变得简单。它支持Web服务,后台工作程序,预定作业和一次性任务。
代码分析
提供指标和质量测量的工具。
Checkstyle - 编码约定和标准的静态分析。
错误发生 - 将常见的编程错误作为编译时错误捕获。
推断 - 用于验证代码正确性的现代静态分析工具。
jQAssistant - 使用基于Neo4J的查询语言进行静态代码分析。
NullAway - 以低构建时开销消除NullPointerExceptions。
PMD - 用于查找错误编码实践的源代码分析。
SonarJava - SonarQube和SonarLint的静态分析器。
Sourcetrail!c - 可视源代码导航器。
Spoon - 用于分析和转换Java源代码的库。
Spotbugs - 字节码的静态分析,以发现潜在的错误。
代码覆盖率
框架和工具,支持测试套件的代码覆盖度量标准收集。
Clover!c - 依靠源代码检测而不是字节码检测。
Cobertura - 依靠离线或静态字节码检测和类加载来收集代码覆盖率指标。
JaCoCo - 使用离线和运行时字节码检测来收集代码覆盖率指标的框架。
代码生成器
为重复代码生成模式的工具,以减少冗长和错误倾向。
ADT4J - 用于代数数据类型的JSR-269代码生成器。
自动 - 生成工厂,服务和值类。
FreeBuilder - 自动生成Builder模式。
Immutables - 注释处理器,用于生成简单,安全且一致的值对象。
JavaPoet - 生成源文件的API。
JHipster - 用于Spring Boot和AngularJS的Yeoman源代码生成器。
Joda-Beans - 为Java添加可查询属性,增强JavaBeans的小框架。
Lombok - 旨在减少冗长的代码生成器。
编译器编译器
有助于创建解析器,解释器或编译器的框架。
ANTLR - 用于自上而下解析的复杂功能全面的框架。
JavaCC - 生成自上而下解析器的解析器生成器。允许词法状态切换并允许扩展BNF规范。
JFlex - 一个词法分析器生成器。
配置
提供外部配置的库。
centraldogma - 基于Git,ZooKeeper和HTTP / 2的高度可用的版本控制服务配置库。
cfg4j - 用Java编写的分布式应用程序的现代配置库。
config - JVM语言的配置库。
dotenv - 用于Java的十二因素配置库。
ini4j - 提供用于处理Windows'INI文件的API。
KAConf - 基于注释的Java和Kotlin配置系统。
所有者 - 减少属性的样板。
约束满足问题解决者
帮助实施优化和可满足性问题的库。
Choco - 使用约束编程技术的现成约束满足问题求解器。
JaCoP - 包含FlatZinc语言的界面,使其能够执行MiniZinc模型。
OptaPlanner - 业务规划和资源调度优化求解器。
CSV
简化读取/写入CSV数据的框架和库。
jackson-dataformat-csv - 用于读写CSV的Jackson扩展。
opencsv - 简单的CSV解析器。
Super CSV - 强大的CSV解析器,支持Dozer,Joda-Time和Java 8。
uniVocity-parsers - 速度最快,功能最全的解析器之一。还提供TSV和固定宽度记录的解析器。
数据库
简化与数据库交互的一切。
Apache Phoenix - 基于HBase的高性能关系数据库层,适用于低延迟应用。
Chronicle Map - 高效的内存选择持久化到磁盘,堆外键值存储。
druid - 高性能,面向列的分布式数据存储。
eXist - 一个NoSQL文档数据库和应用程序平台。
FlexyPool - 将指标和故障转移策略引入最常见的连接池解决方案。
Flyway - 简单的数据库迁移工具。
H2 - 以其内存功能着称的小型SQL数据库。
HikariCP - 高性能JDBC连接池。
jasync-sql - MySQL和PostgreSQL的异步数据库驱动程序。
JDBI - 方便的JDBC抽象。
Jedis - 用于与Redis交互的小客户端,以及命令方法。
Jest - Elasticsearch REST API的客户端。
jetcd - etcd的客户端库。
Jinq - 通过符号执行Java 8 Lambdas在JPA或jOOQ之上进行Typesafe数据库查询。
jOOQ - 基于SQL模式生成类型安全代码。
Liquibase - 用于跟踪,管理和应用数据库模式更改的独立于数据库的库。
MapDB - 嵌入式数据库引擎,提供磁盘或堆外内存支持的并发集合。
MariaDB4j - MariaDB的Launcher,不需要安装或外部依赖。
OrientDB - 在Hazelcast之上编写的可嵌入分布式数据库。
Presto - 用于大数据的分布式SQL查询引擎。
Querydsl - Typesafe统一查询。
Realm - 直接在手机,平板电脑或可穿戴设备内部运行的移动数据库。
Redisson - 允许在Redis服务器之上提供分布式和可扩展的数据结构。
requery - 一个现代,轻量级但功能强大的对象映射和SQL生成器。轻松映射或创建数据库,或从任何使用Java的平台执行查询和更新。
Speedment - 利用Java 8的Stream API进行查询的数据库访问库。
sql2o - 精简的JDBC包装器,简化了数据库访问,并提供了ResultSet到POJO的简单映射。
Vibur DBCP - 具有高级性能监控功能的JDBC连接池库。
Xodus - 高度并发的事务模式和符合ACID的嵌入式数据库。
网友评论