构建 Spring Data Neo4j

需求

  • JDK 17+(可以是 OpenJDKOracle JDK

  • Maven 3.8.5(我们提供 Maven 包装器,请参见项目根目录中的 `mvnw` 或 `mvnw.cmd`;包装器会自动下载相应的 Maven 版本)

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

关于 JDK 版本

选择 JDK 17 是基于多方面因素的决定。

  • SDN 是一个 Spring Data 项目。Spring Data 公共库的基线是 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://127.0.0.1:7687 SDN_NEO4J_PASSWORD=verysecret ./mvnw clean verify

控制构建的环境变量摘要

名称 默认值 含义

SDN_NEO4J_VERSION

5.3.0

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

SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION

no

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

SDN_NEO4J_URL

未设置

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

SDN_NEO4J_PASSWORD

未设置

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

您需要同时设置 `SDN_NEO4J_URL` 和 `SDN_NEO4J_PASSWORD` 才能使用本地实例。

Checkstyle 及其他工具

目前没有质量关卡来确保代码/测试比率保持不变,但请考虑为您的贡献添加测试。

我们有一些相当温和的 checkstyle 规则,强制执行或多或少默认的 Java 格式化规则。您的构建将在格式错误或类似未使用的导入等问题上中断。