社区

构建 Hibernate ORM (5.x)

先决条件

  • 5.0 和 5.1 版本需要 JDK 7,5.2 及更高版本需要 JDK 8

  • Git

  • Gradle(您不必在构建 Hibernate 之前在系统上安装 Gradle。您可以使用 gradle wrapper gradlew 来引导 Gradle 和构建。您可以在 Hibernate git 克隆的根目录中找到 gradlew)

获取源代码

git clone git://github.com/hibernate/hibernate-orm.git

您也可以在 GitHub 上浏览代码

构建任务

构建所有

./gradlew clean build

运行测试

./gradlew test

运行单个模块的测试

./gradlew test -p hibernate-agroal

运行单个测试

./gradlew test --tests ThisUniquelyNamedTest

跳过测试

./gradlew build -x test

其他任务

您可以通过以下方式获取可用任务的完整列表

./gradlew --tasks --all

以下列出了一些重要的任务

  • build - 汇集(jar)并测试此项目

  • buildDependents - 汇集并测试此项目以及所有依赖于它的项目。所以,考虑在 hibernnate-entitymanager 中运行它,Gradle 会汇集并测试 hibernate-entitymanager 以及 hibernate-envers(因为 envers 依赖于 entitymanager)

  • classes - 编译主类

  • clean - 删除构建目录

  • jar - 使用所有已编译的类生成 jar 存档

  • testClasses - 汇集测试类

  • test - 运行单元测试

  • uploadArchives - 考虑 Maven 部署

  • install - 将项目 jar 安装到您的本地 Maven 缓存(即 ~/.m2/repository)

  • idea 或 eclipse - 为相应的 IDE 创建项目文件

Gradle wrapper

上面的示例使用 Gradle 包装器 (gradlew) 来运行不同的构建任务。使用包装器,您无需在构建源代码之前安装 Gradle。它还确保您使用的是 build.gradle 中指定的正确版本的 Gradle。但是,它需要您指定 gradlew 的路径。例如,如果您在 hibernate-core 模块中,您需要使用 `../gradlew`。避免这种情况的一种方法是向您的 `~/.bashrc`(假设您使用的是 Unix)添加一些自定义函数或别名。类似于以下内容

function gradleProjectRoot()
{
x=`pwd``; while [ "$x" != "/" ] ; do if [ `find "$x" -maxdepth 1 -name gradlew` ]; then echo "$x"; break; fi; x=`dirname "$x"`; done
}
function gradlew()
{
    `gradleProjectRoot`/gradlew $@
}

这样,您就可以在项目根目录的任何子目录中键入 gradlew,并执行正确的包装器脚本。如果您有更好的脚本,请告诉我们 :-)

Idea 设置

要创建 Idea 项目文件,您可以运行

./gradlew idea

对依赖项进行更改后,您需要清理项目文件并重新创建它们

./gradlew cleanIdea idea

另请参阅通用 Idea 设置信息 - IntelliJ 信息

Gradle 文档

返回顶部