Java中隐藏的几十个开源工具项目介绍


Apache PDFBox
创建和更改 PDF 文件或从 PDF 文件中提取内容 https://pdfbox.apache.org/

Apache POI
根据 Office Open XML 标准 (OOXML) 创建、更改和读取文件,例如 Word 和 Excel 文件。  https://poi.apache.org/

ArchUnit
使用单元测试验证 Java 代码的体系结构。 https://www.archunit.org/

AssertJ
带有断言的测试代码。 https://assertj.github.io/doc/

AutoService
ServiceLoader 服务提供者的生成器。https://github.com/google/auto

AutoValue
生成不可变值类。https://github.com/google/auto

Awaitility
使用 DSL 测试异步应用程序。 https://github.com/awaitility/awaitility

Buildpacks
创建 (Docker) 镜像。 https://buildpacks.io/

ClassGraph
Java 和其他 JVM 语言的类路径和模块扫描器。https://github.com/classgraph/classgraph

Eclipse Deeplearning4j
JVM 深度学习工具套件。https://projects.eclipse.org/proposals/eclipse-deeplearning4j https://www.rcp-vision.com/build-your-first-neural-network-with-eclipse-deeplearning4j/ No example yet

EqualsVerifier
测试 equals() 和 hashCode()。 https://jqno.nl/equalsverifier/

flexmark-java
解析 markdown 并呈现为 HTML。https://github.com/vsch/flexmark-java

Gatling
Web 应用程序的负载测试。 https://github.com/gatling/gatling

Google Guice
依赖注入框架。https://github.com/google/guice

GraphQL Java
API 的查询语言。 https://www.graphql-java.com/

Handlebars.java
将数据与 Mustache/Handlebars 模板合并。 https://github.com/jknack/handlebars.java

iText
PDF library https://itextpdf.com/en 请注意非常有限的许可证: https://fossa.com/blog/open-source-software-licenses-101-agpl-license/
Apache PDFBox 可用作替代方案。

Jacoco
代码覆盖库。https://www.jacoco.org/jacoco/ 覆盖单元测试和运行应用

Jenetics
Java 遗传算法、进化算法、遗传规划和多目标优化库。  https://jenetics.io/ No example yet

J2CL / GWT
J2CL 是一个从 Java 到 Closure 风格 JavaScript 的转换器。https://github.com/google/j2cl https://www.gwtproject.org/ More info https://lofidewanto.medium.com/web-browser-programming-in-java-e69a153fcb15 No example yet

Java/JDK Mission Control
监控和诊断应用程序,也可以与Flight Recorder飞行记录器一起使用。 https://docs.oracle.com/en/java/java-components/jdk-mission-control/8/user-guide/

Java/JDK Flight Recorder
为正在运行的应用程序收集诊断和分析数据。using_jdk_flight_recorder_with_jdk_mission_control>https://developers.redhat.com/blog/2020/08/25/get-started-with-jdk-flight-recorder-in-openjdk-8uusing_jdk_flight_recorder_with_jdk_mission_control

JavaPoet
用于生成 .java 源文件的 Java API。  https://github.com/square/javapoet

Jbang
编辑和运行纯源代码 Java 程序。https://www.jbang.dev/

Jdbi
关系数据库访问。https://jdbi.org/

Jib
在没有 Docker 守护程序的情况下构建优化的 Docker 和 OCI 镜像. https://github.com/GoogleContainerTools/jib

JfrUnit
断言飞行记录器事件。https://github.com/moditect/jfrunit

jlink
生成仅包含所需平台模块的自定义 Java 运行时镜像。 https://www.baeldung.com/jlink https://access.redhat.com/documentation/en-us/openjdk/11/html/using_jlink_to_customize_java_runtime_environment/index

jMolecules
用注释描述分层、洋葱形和六角形等建筑风格。明确使用带注释或接口的 DDD 概念,而不是命名类......实体。ByteBuddy 用于在构建期间将注释映射到 Spring Data 注释。https://github.com/xmolecules/jmolecules

JobRunr
分布式作业调度程序。https://www.jobrunr.io/en/

jOOQ
在 Java 中集成 SQL 查询。 https://www.jooq.org/

jpackage
创建本机安装程序和包。  https://www.baeldung.com/java14-jpackage

JReleaser
将应用程序打包并分发给 Homebrew、Chocolatey 等。 https://jreleaser.org/

JShell
用于学习 Java 代码和制作原型的交互式 shell。https://en.wikipedia.org/wiki/JShell

jsoup
HTML 解析器。https://jsoup.org/

libphonenumber
解析、格式化和验证电话号码。https://github.com/google/libphonenumber

MapStruct
用于在 bean 类型之间进行映射的代码生成器。 https://mapstruct.org/

Maven Central Search (mcs)
在 Maven Central 中搜索依赖坐标。https://github.com/mthmulders/mcs

Maven Dependency Plugin
分析和操作工件。https://maven.apache.org/plugins/maven-dependency-plugin/

Maven Enforcer Plugin
实施 Maven 或 JDK 版本等约束。 The Maven Enforcer Plugin

Maven Projects Info Reports Plugin
生成有关项目的报告。https://maven.apache.org/plugins/maven-project-info-reports-plugin/

Maven Versions Plugin / Gradle Versions Plugin
管理工件版本。https://www.mojohaus.org/versions-maven-plugin/ https://github.com/ben-manes/gradle-versions-plugin

Maven Wrapper
管理 Maven 版本和配置,以便应用程序在任何地方都使用相同的设置。https://maven.apache.org/wrapper/

Micrometer application monitoring
从 Spring Boot 交付应用程序指标。 https://micrometer.io/

MicroStream
不需要您实现接口或在您的类中放置注释的 Java 序列化程序。 https://microstream.one/

Moduliths
基于ArchUnit验证模块间Spring Boot应用的模块化结构。 https://github.com/moduliths/moduliths

mvnd (Apache Maven Daemon)
更快的 Maven 构建。The mvnd

Old GroupIds Alerter Maven Plugin / Old GroupIds AlerterGradle Plugin
检查已弃用的 groupIds/ArtifactIds 并提出替代方案。https://github.com/jonathanlermitage/oga-maven-plugin https://github.com/jonathanlermitage/oga-gradle-plugin

OpenRewrite
搜索和转换 Java 应用程序,例如更新框架或迁移到其他框架。 https://docs.openrewrite.org/

(OWASP) Dependency Check Maven / (OWASP) Dependency Check Gradle
检测公开披露的依赖项中的漏洞。https://jeremylong.github.io/DependencyCheck/dependency-check-maven/ https://jeremylong.github.io/DependencyCheck/dependency-check-gradle/index.html
请注意,该插件使用 CVE 数据库,并且端点有一些变化,例如速率限制和 API key: https://nvd.nist.gov/General/News/changes-to-feeds-and-apis.
Google also has a CVE database license>https://github.com/github/advisory-databaselicense but it looks like there's no (Maven) plugin for it yet.

Passay
执行密码规则的库https://www.passay.org/

picocli
一个用于创建 Java 命令行应用程序的文件框架。  https://picocli.info/

Playwright
Web 应用程序的端到端测试。https://playwright.dev/ No example yet

Pitest or PIT Mutation Testing
通过自动更改生产代码并重新运行测试以查看它们是否仍然通过来测试您的单元测试。The Pitest

Renovate
Renovate 可以更新 Gradle 和 Maven 依赖项。这包括库和插件以及 Gradle Wrapper。 创建拉取请求以更新依赖项。https://docs.renovatebot.com/java/

Dependabot
监控项目中使用的依赖项中的漏洞,并使用 Dependabot 使您的依赖项保持最新。 https://docs.github.com/en/code-security/dependabot

Resilience4j
容错库。https://github.com/resilience4j/resilience4j No example yet

REST Assured
测试和验证 REST 服务。https://rest-assured.io/

RESTEasy
支持构建 REST 应用程序。 https://github.com/resteasy/Resteasy

Retrofit
类型安全的 HTTP 客户端。https://square.github.io/retrofit/

ShedLock
保证定时任务在分布式环境中最多同时执行一次。https://github.com/lukas-krecan/ShedLock

SDKMAN!
管理多个版本的软件开发工具包 (SDK)。

Spark
在单机和集群上执行数据工程、科学和机器学习。https://spark.apache.org/ https://github.com/apache/spark

Testcontainers
提供数据库、Selenium 和许多其他容器以在单元测试中进行测试。https://www.testcontainers.org/ https://github.com/testcontainers/testcontainers-java

Timefold
解决规划和调度挑战,例如车辆路线安排、排班、创建时间表等。https://timefold.ai/

Togglz
功能标志。Feature flaggs. https://www.togglz.org/ https://github.com/togglz/togglz

Lightbend/TypeSafe config and tsc-reload
加载和重新加载配置,例如属性文件。https://github.com/lightbend/config https://github.com/arkadius/tsc-reload

Update4j
自动更新和启动桌面应用程序。 https://github.com/update4j/update4j No example yet

Vavr
函数式编程库Functional library. https://www.vavr.io/ https://github.com/vavr-io/vavr

Wiremock
创建模拟mock APIs. http://wiremock.org https://github.com/wiremock/wiremock