
CVE-2019-14900
Hibernate ORM 是一个为应用程序、库和框架提供对象关系映射(ORM)支持的库。
它还提供了 JPA 规范的实现,JPA 是 ORM 的标准 Java 规范。
这是其源代码的仓库:有关更多信息,请参见 Hibernate.org。
构建需要将 Java 8 JDK 设置为 JAVA_HOME。
Hibernate 使用 Gradle 作为其构建工具。如果你是 Gradle 新手,请参阅下面的 Gradle 入门 部分。
贡献者应阅读 贡献指南。
请参阅设置 IntelliJ 或 Eclipse 作为开发环境的指南。
请查看 CONTRIBUTING.md 中的 快速入门 部分,了解如何开始处理 Hibernate 源代码。
Hibernate 使用 Jenkins 进行持续集成。每次推送到上游仓库时,项目都会进行持续构建。总体上有几个不同的任务,所有这些任务都可以在 http://ci.hibernate.org/view/ORM/ 上查看。
本节描述了一些开发者和新手可能需要了解的基本知识,以便快速上手 Gradle。Gradle 的文档非常完善;其中特别重要的有两份:
对于不常使用 Gradle 且不想安装它的贡献者,Gradle 提供了一个非常酷的功能,称为 Wrapper。它让你可以在零配置的情况下,无需预先安装 Gradle 发行版即可运行 Gradle 构建。Hibernate 为你配置了 Gradle Wrapper。如果你更喜欢使用 Wrapper 而不是安装 Gradle(或者为了确保使用为旧版本构建指定的 Gradle 版本),你可以在以下讨论中使用命令 gradlew(或 gradlew.bat)代替 gradle(或 gradle.bat)。请注意,gradlew 仅在项目的根目录下可用,因此根据你的工作目录,你可能需要调整 gradlew 的路径。
示例中使用 gradle 语法,但如果你希望使用 Wrapper,只需将 gradle 替换为 gradlew(路径相对正确即可)。
使用 gradlew 的另一个原因是它会使用构建所定义的确切 Gradle 版本。
Gradle 使用构建任务的概念(相当于 Ant 目标或 Maven 阶段/目标)。你可以通过以下命令获取可用任务列表:
gradle tasks
要跨所有模块执行任务,只需从根目录执行该任务。Gradle 会访问每个子项目,如果子项目定义了该任务,则执行它。要在特定模块中执行任务,你可以:
cd 进入该模块目录并执行任务。gradle hibernate-core:test。针对特定数据库进行测试可以通过两种不同的方式实现:
即将推出…
Hibernate 构建在 databases.gradle 中定义了几个数据库测试“profiles”。这些 profiles 可以通过 db 构建属性按名称激活,该属性可以作为 JVM 系统属性(-D)或 Gradle 项目属性(-P)传递。下面的示例使用 Gradle 项目属性的方法。
gradle clean build -Pdb=pgsql
要从 IDE 运行测试,你需要确保属性扩展生效。请使用以下命令:
gradle clean compile -Pdb=pgsql
注意:如果你要针对 Maven 中央仓库不可用的 JDBC 驱动程序运行测试,请确保将这些驱动程序添加到本地 Maven 仓库缓存(~/.m2/repository)中,或者(更好)添加到个人 Maven 仓库服务器上。
你可以在任何配置在 databases.gradle profile 中的特定数据库上运行任何测试。
你只需要运行以下命令:
gradlew setDataBase -Pdb=pgsql
或者可以使用快捷版本:
gradlew sDB -Pdb=pgsql
你可以从你要测试的模块中执行此操作,也可以从 hibernate-orm 根文件夹执行。
之后,只需从 IDE 中选择任何测试并像往常一样运行。Hibernate 将从 setDataBase Gradle 任务设置好的 hibernate.properties 文件中读取数据库配置。