Building Spring Data Neo4j

  • SDN_NEO4J_VERSION:指定 Neo4j Docker 映像版本。

  • SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION:接受 Neo4j 企业版的许可协议。

  • SDN_NEO4J_URL:连接到本地运行的 Neo4j 实例。

  • SDN_NEO4J_PASSWORD:本地 Neo4j 实例的 neo4j 用户密码。

指南详细介绍了不同环境变量的用途,以及如何使用它们在本地或使用 Docker 构建 Spring Data Neo4j 项目。它还提供了有关 Neo4j 安装、Checkstyle 规则和质量门的信息。

Requirements

  • JDK 17+(可以是 OpenJDKOracle JDK

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

  • Neo4j 5.+ 数据库,或者

About the JDK version

选择 JDK 17 是受各个方面影响的决定。

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

Running the build

以下部分是备选方案,大致按工作量升序排列。

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

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

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

Verify your 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)

With Docker installed

Using the default image

如果您尚未安装 Docker,请前往 Docker Desktop。简而言之,Docker 是一个帮助您在所谓的容器中使用 OS 级虚拟化运行轻量级软件映像的工具。

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

Build with default settings on Linux / macOS
$ ./mvnw clean verify

在 Windows 计算机上,使用

Build with default settings on Windows
$ mvnw.cmd clean verify

输出应类似于:

Using another image

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

Build using a different Neo4j Docker image
$ SDN_NEO4J_VERSION=5.3.0-enterprise SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION=yes ./mvnw clean verify

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

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

Against a locally running database

对本地运行的数据库 will 运行会抹除其全部内容。

相对于每次重新启动容器,针对本地运行的数据库进行构建速度更快。我们在开发过程中经常这样做。

您可以在我们的 download center 处免费获取 Neo4j 副本。

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

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

Build using a locally running database
$ SDN_NEO4J_URL=bolt://localhost:7687 SDN_NEO4J_PASSWORD=verysecret ./mvnw clean verify

Summary of environment variables controlling the build

Name Default value Meaning

SDN_NEO4J_VERSION

5.3.0

Neo4j docker 镜像版本以使用,见 Neo4j Docker Official Images

SDN_NEO4J_ACCEPT_COMMERCIAL_EDITION

no

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

SDN_NEO4J_URL

not set

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

SDN_NEO4J_PASSWORD

not set

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

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

Checkstyle and friends

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

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