构建 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 基线是顺理成章的。

运行构建

以下各节是替代方案,大致按所需精力递增排序。

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

克隆 SDN
$ git clone [email protected]:spring-projects/spring-data-neo4j.git

在继续之前,请验证您本地安装的 JDK 版本。输出应该类似

验证您的 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)

已安装 Docker

使用默认镜像

如果您没有安装 Docker,请访问 Docker Desktop。简而言之,Docker 是一种工具,它利用操作系统级虚拟化在所谓的容器中运行轻量级软件镜像。

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

在 Linux / macOS 上使用默认设置构建
$ ./mvnw clean verify

在 Windows 机器上,使用

在 Windows 上使用默认设置构建
$ mvnw.cmd clean verify

输出应该类似。

使用另一个镜像

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

使用不同的 Neo4j Docker 镜像构建
$ SDN_NEO4J_VERSION=5.3.0-enterprise SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION=yes ./mvnw clean verify

这里我们使用 5.3.0 企业版,并接受许可协议。

如果内联指定环境变量对您不起作用,请查阅您的操作系统或 shell 手册,了解如何定义环境变量。

针对本地运行的数据库

针对本地运行的数据库进行运行将清除其全部内容。

针对本地运行的数据库进行构建更快,因为它不会每次都重新启动容器。我们在开发过程中经常这样做。

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

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

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

使用本地运行的数据库构建
$ SDN_NEO4J_URL=bolt://localhost:7687 SDN_NEO4J_PASSWORD=verysecret ./mvnw clean verify

控制构建的环境变量摘要

名称 默认值 含义

SDN_NEO4J_VERSION

5.3.0

要使用的 Neo4j docker 镜像版本,请参阅 Neo4j Docker 官方镜像

SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION

某些测试可能需要 Neo4j 的企业版。我们在内部使用企业版进行构建和测试,但如果您不愿意,我们不会强迫您接受许可。

SDN_NEO4J_URL

未设置

设置此环境变量允许连接到本地运行的 Neo4j 实例。我们在开发过程中经常使用此设置。

SDN_NEO4J_PASSWORD

未设置

使用 SDN_NEO4J_URL 配置的实例中 neo4j 用户的密码。

您需要同时设置 SDN_NEO4J_URLSDN_NEO4J_PASSWORD 才能使用本地实例。

Checkstyle 及相关工具

目前没有质量门来确保代码/测试比保持原样,但请考虑在您的贡献中添加测试。

我们有一些相对宽松的 checkstyle 规则,大致遵循默认的 Java 格式规范。如果存在格式错误或未使用导入等问题,您的构建将会失败。