H2をデバッグ実行する方法

H2ソースコードを読むために、H2をEclipse上でデバッグ実行する方法を説明します。依存ライブラリにH2を持つ空プロジェクトを作成します。

次の環境で動作を確認しました。

準備

以降の手順では、ビルドツールのGradleを使います。ダウンロードしてインストールしておきます。「gradle --version」としてバージョンが表示されることを確認します。

また、H2のソースコードからサンプルをコピーアンドペーストするので、Version 1.3.176のPlatform-Independent Zipをダウンロードして展開します。1.3.176は、現時点のLast Stableです。

1. 空プロジェクトの作成(任意)

Gradleのカスタムinitタスクを作成するスクリプトを、USER_HOME/.gradle/init.d/以下に配置します。

% cd ~/.gradle/
% git clone https://github.com/taichi/init_scripts.git init.d

このタスクを実行することで、Maven構成のJavaプロジェクトが簡単に手に入ります。

2. H2のjarとソースコードのダウンロード

Eclipseのworkspace内に、プロジェクト用のディレクトリを任意の名前(h2-read)で作成して、移動します。

% mkdir ~/Documents/luna-workspace/h2-read
% cd ~/Documents/luna-workspace/h2-read
手順1.を実行した場合

Gradleのコマンドで、空のJavaプロジェクトを作成します。

% gradle init
% ls -la
total 72
drwxr-xr-x  13 USER_NAME  staff    442  3  8 23:05 .
drwxr-xr-x   9 USER_NAME  staff    306  3  8 22:59 ..
-rw-r--r--   1 USER_NAME  staff    126  3  8 23:05 .gitignore
drwxr-xr-x   3 USER_NAME  staff    102  3  8 22:59 .gradle
drwxr-xr-x   3 USER_NAME  staff    102  3  8 23:05 .settings
-rw-r--r--   1 USER_NAME  staff  11357  3  8 23:05 LICENSE
-rw-r--r--   1 USER_NAME  staff     76  3  8 23:05 README.md
-rw-r--r--   1 USER_NAME  staff    509  3  8 23:05 build.gradle
drwxr-xr-x   3 USER_NAME  staff    102  3  8 23:05 gradle
-rw-r--r--   1 USER_NAME  staff      0  3  8 23:05 gradle.properties
-rwxr-xr-x   1 USER_NAME  staff   5080  3  8 23:05 gradlew
-rw-r--r--   1 USER_NAME  staff   2404  3  8 23:05 gradlew.bat
drwxr-xr-x   4 USER_NAME  staff    136  3  8 23:05 src

自動生成されたbuild.gradleを編集して、H2をダウンロードするための設定を追加します。

% vi build.gradle

冒頭にプラグイン読み込みを追加します。

apply plugin: 'eclipse'

dependenciesに、次の行を追加します。

dependencies {
  compile 'com.h2database:h2:1.3.176'
(略)
}
手順1.を飛ばした場合

ディレクトリ(h2-read)のルートで、Gradleのビルドスクリプトを新規に作成します。

% vi build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.h2database:h2:1.3.176'
}
共通手順

Gradleのコマンドを実行して、Eclipseプロジェクトを作成します。

% gradle eclipse
:eclipseClasspath
Download https://repo1.maven.org/maven2/com/h2database/h2/1.3.176/h2-1.3.176.pom
Download https://repo1.maven.org/maven2/com/h2database/h2/1.3.176/h2-1.3.176.jar
Download https://repo1.maven.org/maven2/com/h2database/h2/1.3.176/h2-1.3.176-sources.jar
:eclipseJdt
:eclipseProject
:eclipse

BUILD SUCCESSFUL

Total time: 11.189 secs

プロジェクトルートに.projectファイルが作成されたことを確認します。

3. Eclipseへプロジェクトをインポートする

手順2.で作成したプロジェクトを、Eclipseにインポートします。

EclipseJavaパースペクティブで、[File]→[Import]→[General]→[Existing Projects into Workspace]→[Next]と進み、「Select root directory」を選択して、先ほどのプロジェクト(h2-read)を指定します。[Finish]ボタンを押します。

手順1.を飛ばした場合

プロジェクトにソースフォルダが生成されないため、作成する必要があります。

Package Explorerでプロジェクト(h2-read)を右クリックして、コンテキストメニューから[New]→[Folder]と進み、「Folder name:」に「src/main/java」と入力し、[Finish]ボタンを押します。

作成されたフォルダを右クリックして、コンテキストメニューから[Build Path]→[Use as Source Folder]を選択します。プロジェクトの下に「src/main/java」というソースフォルダが作成されます。

4. H2テストコードの作成と実行

「src/main/java」を右クリックして、コンテキストメニューから[New]→[Class]を選択します。「Package」に任意の名前(test)、Nameに「HelloWorld」と入力し、[Finish]ボタンを押します。

zipでダウンロードしたH2のソースコードから、./src/test/org/h2/samples/HelloWorld.javaを取り出して、作成したJavaファイルにコピーアンドペースとします。その際、パッケージ名を先ほど自分で作成したパッケージ名に書き換えます。

編集前。

package org.h2.samples;

編集後。

package test;

EclipseでHelloWorld.javaを右クリックして、コンテキストメニューから[Run As]→[Java Application]を選択します。Consoleウィンドウに「Hello」と出力されたら、テストの実行は成功です。

5. テストコードのデバッグ実行

Eclipse上でHelloWorld.javaの「Class.forName("org.h2.Driver");」行の左端でダブルクリックして、ブレークポイントを追加します。

今度は、HelloWorld.javaを右クリックして、コンテキストメニューから[Debug As]→[Java Application]を選択します。デバッグ画面が開き、1行ずつ実行できます。

以上です。