跳到主要内容

构建 Spring Data Neo4j

DeepSeek V3 中英对照 Building Spring Data Neo4j

构建 Spring Data Neo4j

需求

  • JDK 17+(可以是 OpenJDKOracle JDK

  • Maven 3.8.5(我们提供了 Maven 包装器,参见项目根目录下的 mvnwmvnw.cmd;包装器会自动下载合适的 Maven 版本)

  • Neo4j 5.+ 数据库,可以是

关于 JDK 版本

选择 JDK 17 的决定受到多方面的影响

  • SDN 是一个 Spring Data 项目。Spring Data commons 的基线是 JDK 17,Spring Framework 的基线也是如此。因此,保持 JDK 17 基线是理所当然的。

运行构建

以下部分提供了替代方案,并大致按照所需工作量递增的顺序排序。

所有构建都需要项目的本地副本:

$ git clone git@github.com:spring-projects/spring-data-neo4j.git
console

在继续操作之前,请验证你本地安装的 JDK 版本。输出应类似于:

$ java -version
java version "18.0.1" 2022-04-19
Java(TM) SE Runtime Environment (build 18.0.1+10-24)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1+10-24, mixed mode, sharing)
console

安装 Docker 后

使用默认镜像

如果你还没有安装 Docker,可以前往 Docker Desktop。简而言之,Docker 是一款工具,它可以帮助你通过所谓的容器使用操作系统级别的虚拟化来运行轻量级的软件镜像。

我们的构建使用了 Testcontainers Neo4j 来启动一个数据库实例。

$ ./mvnw clean verify
console

在 Windows 机器上,使用

$ mvnw.cmd clean verify
console

输出应该相似。

使用另一张镜像

可以通过环境变量来配置要使用的镜像版本,如下所示:

$ SDN_NEO4J_VERSION=5.3.0-enterprise SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION=yes ./mvnw clean verify
console

这里我们使用的是 5.3.0 企业版,并且已经接受了许可协议。

如果内联定义环境变量对你无效,请查阅操作系统或 shell 手册以了解如何定义环境变量。

针对本地运行的数据库

:::警告
针对本地运行的数据库进行操作 将会 清除其全部内容。
:::

在本地运行的数据库上进行构建会更快,因为每次构建时不需要重启容器。我们在开发过程中经常这样做。

您可以在我们的下载中心免费获取 Neo4j 的副本。

请下载适用于您操作系统的版本,并按照说明启动它。一个必要的步骤是在启动数据库后,打开浏览器并访问 localhost:7474,然后将默认密码从 neo4j 更改为您喜欢的密码。

之后,您可以通过指定本地的 bolt URL 来运行完整的构建:

$ SDN_NEO4J_URL=bolt://localhost:7687 SDN_NEO4J_PASSWORD=verysecret ./mvnw clean verify
console

控制构建的环境变量概述

名称默认值含义
SDN_NEO4J_VERSION5.3.0使用的 Neo4j docker 镜像版本,参见 Neo4j Docker 官方镜像
SDN_NEO4J_ACCEPT_COMMERCIAL_EDITIONno某些测试可能需要 Neo4j 的企业版。我们在内部构建和测试企业版,但如果你不愿意接受许可证,我们不会强制你使用。
SDN_NEO4J_URL未设置设置此环境变量可以连接到本地运行的 Neo4j 实例。我们在开发过程中经常使用此功能。
SDN_NEO4J_PASSWORD未设置为使用 SDN_NEO4J_URL 配置的实例的 neo4j 用户设置的密码。
备注

你需要设置 SDN_NEO4J_URLSDN_NEO4J_PASSWORD 才能使用本地实例。

Checkstyle 及其相关工具

目前没有设立质量门控来确保代码/测试比例保持不变,但请在贡献时考虑添加测试。

我们设置了一些相对宽松的 Checkstyle 规则,基本上强制遵循默认的 Java 格式化规则。如果存在格式化错误或类似未使用的导入等问题,你的构建将会失败。