Hibernate ORM 是一个强大的 Java 对象/关系映射解决方案,可以轻松地为应用程序、库和框架开发持久性逻辑。
Hibernate 实现了 JPA,即 Java 中对象/关系持久性的标准 API,而且还提供了一组超出规范的广泛功能和 API。
请参阅 Hibernate.org 了解更多信息。
Hibernate 使用 Jenkins 和 GitHub Actions 来满足其 CI 需求。看
詹金斯乔布斯
GitHub 操作 职位
构建至少需要 Java 11,最多需要 Java 17。
Hibernate 使用 Gradle 作为其构建工具。如果您是 Gradle 新手,请参阅下面的Gradle 入门部分。
贡献者应阅读贡献指南。
请参阅将 IntelliJ 或 Eclipse 设置为开发环境的指南。
Gradle 构建工具拥有令人惊叹的文档。 2、特别是不可缺少的:
Gradle 用户指南是典型的用户指南,它遵循主题方法来描述 Gradle 的所有功能。
Gradle DSL 指南在快速掌握 Gradle 某些方面方面是独特且出色的。
我们将介绍刚接触 Gradle 的开发人员和贡献者快速提高工作效率所需了解的基础知识。
笔记 | 该项目定义了一个 Gradle Wrapper。本节的其余部分将假定通过包装器执行。 |
Gradle 使用构建任务的概念(相当于 Ant 目标或 Maven 阶段/目标)。您可以通过以下方式获取可用任务的列表
分级任务
要跨所有模块执行任务,只需从根目录执行该任务即可。 Gradle 将访问每个子项目并执行该任务(如果子项目定义了该任务)。要在特定模块中执行任务,您可以:
cd
进入该模块目录并执行任务
命名“任务路径”。例如,要从根目录运行hibernate-core模块的测试,您可以说gradle hibernate-core:test
您在构建 Hibernate 时可能使用的常见任务包括:
build - 组装(jar)并测试该项目
编译- 执行所有编译任务,包括从主程序和测试中暂存资源
jar - 生成包含所有已编译类的 jar 存档
test - 运行测试
publishToMavenLocal - 将项目 jar 安装到本地 Maven 缓存(又名 ~/.m2/repository)。请注意,Gradle 从不使用此功能,但它对于使用其他基于 Maven 的本地构建来测试您的构建非常有用。
clean - 清理构建目录
针对特定数据库的测试可以通过两种不同的方式实现:
稍后推出...
Hibernate 构建在databases.gradle
中定义了几个数据库测试“配置文件”。这些配置文件可以使用db
构建属性按名称激活,该属性可以作为 JVM 系统属性 ( -D
) 或作为 Gradle 项目属性 ( -P
) 传递。下面的示例使用 Gradle 项目属性方法。
gradle clean build -Pdb = pgsql
要从 IDE 运行测试,您需要确保发生属性扩展。使用以下命令:
gradle clean 编译-Pdb=pgsql
注意:如果您正在针对 Maven 中心无法提供的 JDBC 驱动程序运行测试,请务必将这些驱动程序添加到本地 Maven 存储库缓存 (~/.m2/repository) 或(更好)将其添加到个人 Maven 存储库服务器
您可以对在databases.gradle
配置文件中配置的任何特定数据库运行任何测试。
您所要做的就是运行以下命令:
./gradlew setDataBase -Pdb=pgsql
或者您可以使用快捷方式版本:
./gradlew sDB -Pdb=pgsql
您可以从您有兴趣测试的模块或hibernate-orm
根文件夹中执行此操作。
然后,只需从 IDE 中选择任何测试并照常运行即可。 Hibernate 将从setDataBase
Gradle 任务设置的hibernate.properties
文件中选择数据库配置。
如果您有可用的 docker,您不必在本地安装所有数据库即可对其进行测试。脚本docker_db.sh
允许您启动可用于测试的预配置数据库。
您所要做的就是运行以下命令:
./docker_db.sh postgresql
省略参数将打印可能选项的列表。
当数据库正确启动后,您可以使用带有_ci
后缀的特殊配置文件运行测试,例如 PostgreSQL 的pgsql_ci
。通过使用系统属性dbHost
您可以配置 docker 主机的 IP 地址。
运行测试的命令可能如下所示:
./gradlew测试-Pdb=pgsql_ci“-DdbHost=192.168.99.100”
下表列出了可在本地测试的各种数据库的命令列表。
数据库 | docker_db.sh | 摇篮命令 |
---|---|---|
氢2 | - | |
HSQL数据库 | - | |
阿帕奇德比 | - | |
MySQL | | |
玛丽亚数据库 |
| |
PostgreSQL | | |
企业数据库 |
| |
甲骨文 |
| |
数据库2 | | |
SQL服务器 |
| |
Sybase ASE (jTDS) | | |
Sybase ASE (jConnect) | | |
SAP HANA | | |
蟑螂数据库 |
| |
钛数据库 |
| |
信息系统 |
| |
要停止由docker
启动的容器,请使用以下命令
docker stop $container_name
如果使用podman
请将podman
命令替换为docker
例如,停止 mariadb 容器
docker stop mariadb