构建 Spring Data Neo4j
要求
-
JDK 17+(可以是 OpenJDK 或 Oracle JDK)
-
Maven 3.8.5(我们提供了 Maven Wrapper,请参阅项目根目录下的
mvnw或mvnw.cmd;Wrapper 会自动下载相应版本的 Maven) -
一个 Neo4j 5.+ 数据库,方式为以下二者之一
-
本地运行
-
或通过 Testcontainers 和 Docker 间接运行
-
关于 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
在继续之前,请验证本地安装的 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 来启动数据库实例。
$ ./mvnw clean verify
在 Windows 机器上,请使用
$ mvnw.cmd clean verify
输出应类似。
使用其他镜像
要使用的镜像版本可以通过如下环境变量进行配置:
$ 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 | no | 部分测试可能需要 Neo4j 企业版。我们内部基于企业版进行构建和测试,但如果您不想接受许可协议,我们不会强迫您接受。 |
SDN_NEO4J_URL | not set | 设置此环境变量可连接到本地运行的 Neo4j 实例。我们在开发过程中经常使用它。 |
SDN_NEO4J_PASSWORD | not set | 通过 SDN_NEO4J_URL 配置的实例中 neo4j 用户的密码。 |
要使用本地实例,您需要同时设置 SDN_NEO4J_URL 和 SDN_NEO4J_PASSWORD。
Checkstyle 等检查
目前还没有设置质量门禁来确保代码与测试的比例保持不变,但请您在贡献代码时考虑添加测试。
我们设置了一些较为宽松的 checkstyle 规则,强制执行大致默认的 Java 格式化规则。如果出现格式错误或未使用的导入等问题,构建将会失败。