Skip to main content

ビルド・テスト・実行方法

このページでは、OpenRefine をソースから実行・開発するために必要なツールのインストール手順を説明します。必要なものは次のとおりです。

OpenRefine のソースコードを取得

Git がインストールされていれば、git cloneリポジトリ を任意のディレクトリにクローンします。

JDK のセットアップ

JDK をインストールし、JAVA_HOME 環境変数を設定してください(JRE ではなく JDK を指す必要があります)。OpenRefine は Java 11〜21 で動作確認済みです。

  1. Windows 10 ではスタートメニューを開いて env と入力し、検索結果から 環境変数を編集 をクリックします(古いバージョンはスタートメニューの「検索」ボックスを使います)。

A screenshot of the search results for 'env'.

  1. 詳細設定 タブ下部の 環境変数... をクリックします。
  2. 表示された 環境変数 ウィンドウで 新規... を押し、キーを JAVA_HOME にします。ユーザー環境変数でもシステム環境変数でも構いません。

A screenshot of 'Environment Variables'.

  1. には JDK をインストールしたフォルダー(例: D:\Programs\OpenJDK)を設定します。ディレクトリの参照... で辿れます。

Maven

OpenRefine のビルド・テスト・パッケージ化には Apache Maven が必須です。最新バージョンの利用を推奨します。古い Maven だと IDE 上で POM や依存関係の不整合が表示されることがあります。

公式手順で Maven をインストールし、M2_HOME または MAVEN_HOME を設定するか、mvnPATH に入っていることを確認します。

MAVEN_HOME=E:\Downloads\apache-maven-3.8.4-bin\apache-maven-3.8.4\

Node.js と npm

OpenRefine の webapp 依存をインストールするために Node.js と npm が必要です。Node.js 20 以上を入れてください(Windows では nvm-windows も便利です)。 インストール後、次でバージョン確認ができます。

node -v
npm -v

npm を最新に更新したい場合は:

npm install -g npm@latest

ビルド

サポートされるコマンドを確認するには:

./refine -h

ソースから OpenRefine をビルドするには:

./refine clean
./refine build

refine スクリプトは Maven のラッパーです。Maven のゴールを直接実行しても構いませんが、ゴール単体だと失敗することがあります。その場合は compile test-compile を付けるなどしてください。

テスト

OpenRefine はサーバーとブラウザー UI の 2 つの部分で構成されるため、テストも次のように分かれます。

  • サーバー側: TestNG を用いた Java のユニットテスト
  • クライアント側: Cypress を用いた JavaScript テスト

サーバーテストを実行するには:

./refine test

Cypress テストを初めて実行する前に、インストール手順を完了させてください。その後は 2 つのプロセスを並行して起動します。

  • OpenRefine 本体(可能なら空のワークスペースを使用): ./refine -d /tmp/openrefine_workspace
  • Cypress: yarn --cwd ./main/tests/cypress run cypress open

ローカルでは必要なテストスイートだけを選んで実行し、全スイートは CI に任せることを推奨します(時間がかかるため)。

実行

リポジトリのルートで ./refine シェルスクリプト(Windows は refine.bat)を使えばビルド・テスト・実行ができます。refine.bat は一部の機能しかサポートしない点に注意してください。以下の例では ./refine を前提にしています(Windows は refine.bat に置き換えてください)。

ビルド済みの OpenRefine を起動するには:

./refine

デフォルトでは refine.ini の設定を読みます。これをコピーして refine-dev.ini にリネームすると、そちらの設定が優先されます。refine-dev.ini は Git 管理外なので自由にカスタマイズできます。

refine スクリプトを使わずに手動で実行したい場合は、mvn exec:java を実行し、エントリーポイント com.google.refine.Refine を起動します。

配布物(パッケージ版)をビルド

Refine のビルドシステムは Apache Maven で各 OS 向けインストーラを自動生成します。すべての OS 向けパッケージを作成できるのは macOS のみです。

配布物を作成するには:

./refine dist <version>

<version> にはリリースバージョンを指定します。

Eclipse での開発

OpenRefine には Maven 設定が含まれており、Eclipse に Maven プラグイン(m2e)が入っていれば認識されます。

まず Eclipse ワークスペース外のディレクトリでソースを取得します。

git clone https://github.com/OpenRefine/OpenRefine.git

Eclipse で Import...Existing Maven Projects を選び、クローンしたリポジトリを指定します。

Screenshot of Import a Maven project option

取り込むモジュールを選択できます。Linux/Windows/macOS 向け配布物のみを生成する packaging モジュールは省略して構いません。

Screenshot of Select maven projects to import

OpenRefine を Eclipse から実行・デバッグするには server サブプロジェクトに実行設定を追加します。server を右クリック → Run as...Run configurations... で新規 Maven Build を作成し、名前を OpenRefineBase directory にリポジトリルート、ゴールに exec:java を指定します。

Screenshot of Add a run configuration with the exec goal

これで Eclipse から OpenRefine を実行できます。

コードスタイル

IDEs/eclipse/Refine.style.xml に Eclipse 用のコードスタイルがあるので、Window -> Preferences -> Java Code Style -> Formatter でプロジェクト固有のフォーマッターを有効にし、XML をインポートしてください。

Window -> Preferences -> Java -> Code Style -> Organize imports で以下の順序になるよう import 整列も設定できます。

  • java
  • javax
  • *
  • com.google.refine
  • org.openrefine

設定画面は次のようになります。 Screenshot of the dialog to configure import order in Eclipse

スタイルから逸脱した Pull Request は CI で失敗します。IDE に関わらず ./refine lint(Windows は refine.bat lint)でスタイルを適用できます。

テスト

Eclipse からサーバーテストを実行するには TestNG ランチャープラグインと TestNG M2E プラグインが必要です。未インストールの場合は インストール手順に従い、更新サイト https://testng.org/doc/download.html を追加してください。

インストール後、main/tests/server/src を右クリック→Run AsTestNG Test で TestNG ランチャーが開き、テストが実行されます。

テストカバレッジ

EclEmma Java Code Coverage プラグインを使えばカバレッジ解析が可能です。Coverage as... メニューから実行すると、エディタ上でカバレッジ結果を確認できます。

デバッグ

Eclipse でのデバッグ設定例(Google データ拡張の設定値など)です。他にもメモリサイズや Wikidata ログイン情報などを設定できます。

Screenshot of Eclipse debug configuration

IntelliJ IDEA での開発

任意のディレクトリで次を実行してリポジトリを取得します。

git clone https://github.com/OpenRefine/OpenRefine.git

IntelliJ IDEA を開き、File -> Open でクローンしたディレクトリを指定します。

Screenshot of Open option on the IntelliJ File menu

pom.xml があるため Maven プロジェクトとして追加するか聞かれます。auto-import を許可すると依存関係が自動解決されます。表示されない場合は右側の Maven タブで reimport all the maven projects をクリックしてください。

Screenshot of Maven project controls in IntelliJ

この時点で端末からのビルド・テスト・実行は可能ですが、モジュール設定をしないとテストフォルダなどで import エラーが表示される場合があります。extensions/wikidatamain など各モジュールを開き、プロジェクトとして設定します。プロジェクトフォルダーを右クリックし、Module Settings を開いてソースフォルダーとテストフォルダーを指定します。

Screenshot of open module settings menu in IntelliJ

Screenshot of module settings in IntelliJ

メインプロジェクトについても同様に設定すれば準備完了です。

コードスタイル

IntelliJ は Eclipse スタイルファイルをインポートできるので、Settings -> Editor -> Code style -> JavaIDEs/eclipse/Refine.style.xml を読み込みます(Eclipse の設定には import 順序が含まれない点に注意)。

その上で import 順序を次の通りに設定し、ワイルドカード import を抑制するため閾値を 99 にします。

  • java
  • javax
  • *
  • com.google.refine
  • org.openrefine

Screenshot of import order settings in IntelliJ

コマンドラインから自動整形したい場合は ./refine lint(Windows は refine.bat lint)を実行してください。