4.0
Gradle Plugin

1. Gradle Plugin について

iPLAssのデフォルト設定では各種メタデータはRDBで管理されます。
RDBで管理する場合、バージョン管理による履歴は残りますが、各バージョン間の差異等は分かりません。
そのため複数の開発者で更新を繰り返すと、変更点が分かりにくくなるというデメリットがあります。

そこで、メタデータをファイル(XML形式)管理へ変更し、メタデータファイルをバージョン管理システム(Git/SVN等)で管理します。
バージョン管理システムを利用することで、メタデータのファイル単位の変更内容を管理することが可能となり、デメリットを解消できます。

iPLAssにはメタデータをXMLファイルとして出力する機能があります。
このXMLファイルを管理可能な形でローカルプロジェクトに取り込むツールとして、Gradle Plugin を提供しています。

Gradle Plugin はメタデータのファイル管理機能の他に、開発時に利用する機能を提供します。

2. 利用設定

Gradle Plugin を利用するために、次の設定が必要です。

2.1. build.gradle の設定

プロジェクトの build.gradle に plugin を設定します。

Plugin の最低限の設定
plugins {
    id 'org.iplass.dev' version '1.0.0'
}

configure(iplass) {
    tenantId = TENANT_ID // 利用しているテナントIDを設定する
}

その他の設定詳細は、Github iplass gradle plugin の README を参照ください。

2.2. service-config の設定

service-config の MetaDataRepository のプロパティ設定が必要となります。
詳細については 開発運用サポート:バッチツール → MetaData → Export Rdb to Fileservice-config の設定 を参照してください。

3. メタデータ管理

3.1. RDBメタデータをファイルメタデータへ変換

以下のコマンドで開発用のテナント(RDB)からローカルのプロジェクト内にメタデータを移行します。

タスク実行

ファイルメタデータへ変換するGradleタスクを実行します。

Gradleタスク実行コマンド
.\gradlew.bat :metaConvertRdbToFile

タスクが完了すると、XmlFileMetaDataRepositoryのfileStorePathで指定したディレクトリに種類毎に分割されたメタデータファイルが格納されます。

3.2. RDB管理メタデータを最新化

Entity等のRDB管理しているメタデータを、以下の操作で最新化します。

build.gradle の設定

プロジェクトの build.gradle ファイルに、RDB管理しているメタデータのパスを設定します。

RDB管理メタデータパスの設定例
// entity メタデータ、staticresource メタデータを対象とする設定
metaSyncRdbToFile {
    source = ['/entity/*', '/staticresource/*']
}

タスク実行

メタデータの最新化タスクを実行します。

Gradleタスク実行コマンド
.\gradlew.bat :metaSyncRdbToFile

タスクが完了すると、XmlFileMetaDataRepositoryのfileStorePathで指定したディレクトリに build.gradle で設定したパスに一致するメタデータファイルが更新されます。

3.3. バージョン管理システムの利用

Git/SVN等のバージョン管理システムを利用することで、メタデータの変更を管理できるようになります。
競合や差分が発生した場合、変更内容を確認しマージ/コミット等を行ってください。

4. 開発時に利用する機能

4.1. Entity View DDL 作成

バッチツール Entity View を plugin から WIZARD モードで実行します。
詳しい説明は こちら を参照ください。

Gradleタスク実行コマンド
.\gradlew.bat :entityViewDdl
実行時に文字化けする場合は、VM引数に -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 を設定してください。(環境変数 JAVA_TOOL_OPTIONS に設定する等)

4.2. service-config 表示

バッチツール service-config viewer を plugin から実行します。
詳しい説明は こちら を参照ください。

Gradleタスク実行コマンド
.\gradlew.bat :serviceConfigView