Spring Data Neo4j の構築

要件

  • JDK 17+ (OpenJDK (英語) または Oracle 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 [Wikipedia] (英語) がインストールされていない場合は、Docker デスクトップ (英語) に進んでください。つまり、Docker は、いわゆるコンテナーで OS レベルの仮想化を使用して軽量のソフトウェアイメージを実行するのに役立つツールです。

ビルドではテストコンテナー 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 enterprise を使用し、ライセンス契約にも同意します。

環境変数をインラインで指定しても機能しない場合は、環境変数の定義方法についてオペレーティングシステムまたはシェルのマニュアルを参照してください。

ローカルで実行されているデータベースに対して

ローカルで実行されているデータベースに対して実行すると、その内容全体が消去されます。

毎回コンテナーを再起動する必要がないため、ローカルで実行されているデータベースに対するビルドが高速になります。開発中にこれを頻繁に行います。

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_URL と SDN_NEO4J_PASSWORD の両方を設定する必要があります。

Checkstyle と仲間たち

現時点では、コードとテストの比率が現状のままであることを保証するための品質ゲートはありませんが、コントリビュートにテストを追加することを検討してください。

かなり穏やかな checkstyle ルールがいくつか用意されており、多かれ少なかれデフォルトの Java 書式設定ルールが強制されます。フォーマットエラーや未使用のインポートなどにより、ビルドが中断されてしまいます。