构建 Spring Data Neo4j

要求

关于 JDK 版本

选择 JDK 17 是一个受多方面影响的决定spring-doc.cn

  • SDN 是一个 Spring Data 项目。 Spring Data commons 基线是 JDK 17,Spring Framework 的基线也是 JDK 17。 因此,保持 JDK 17 基线是很自然的。spring-doc.cn

运行构建

以下部分是备选方案,大致按增加的工作量排序。spring-doc.cn

所有构建都需要项目的本地副本:spring-doc.cn

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

在继续之前,请验证您本地安装的 JDK 版本。 输出应类似:spring-doc.cn

验证 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 是一种工具,可帮助您在所谓的容器中使用操作系统级虚拟化运行轻量级软件映像。spring-doc.cn

我们的构建使用 Testcontainers Neo4j 来启动数据库实例。spring-doc.cn

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

在 Windows 计算机上,使用spring-doc.cn

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

输出应该是类似的。spring-doc.cn

使用其他图像

可以使用的镜像版本可以通过环境变量进行配置,如下所示:spring-doc.cn

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

这里我们使用的是 5.3.0 企业版,也接受许可协议。spring-doc.cn

请查阅您的操作系统或 shell 手册,了解如何定义环境变量(如果内联指定它们不适合您)。spring-doc.cn

针对本地运行的数据库

针对本地运行的数据库运行擦除其完整内容。

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

您可以在我们的下载中心免费获取 Neo4j 的副本。spring-doc.cn

请下载适用于您的操作系统的版本,然后按照说明启动它。 必需的步骤是打开浏览器并在启动数据库后转到 localhost:7474 并将默认密码更改为您喜欢的密码。neo4jspring-doc.cn

之后,您可以通过指定本地 URL 来运行完整的构建:boltspring-doc.cn

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

控制构建的环境变量摘要

名字 默认值 意义

SDN_NEO4J_VERSIONspring-doc.cn

5.3.0spring-doc.cn

要使用的 Neo4j docker 镜像版本,参见 Neo4j Docker 官方镜像spring-doc.cn

SDN_NEO4J_ACCEPT_COMMERCIAL_EDITIONspring-doc.cn

spring-doc.cn

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

SDN_NEO4J_URLspring-doc.cn

未设置spring-doc.cn

设置此环境允许连接到本地运行的 Neo4j 实例。 我们在开发过程中经常使用它。spring-doc.cn

SDN_NEO4J_PASSWORDspring-doc.cn

未设置spring-doc.cn

配置了 的实例的用户的密码。neo4jSDN_NEO4J_URLspring-doc.cn

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

Checkstyle 和朋友

目前没有质量关卡来确保代码 / 测试比率保持原样,但请考虑将测试添加到您的贡献中。spring-doc.cn

我们有一些相当温和的 checkstyle 规则,或多或少地执行默认的 Java 格式规则。 您的构建将因格式错误或未使用的导入等情况而中断。spring-doc.cn