Asakusa Gradle Plugin:非推奨機能¶
Deprecated
本書「Asakusa Gradle Plugin:非推奨機能」では、Asakusa Framework バージョン 0.10.4 で非推奨となっている Asakusa Gradle Plugin の機能をまとめています。 本書に記載する機能は、いくつかの制約の元で動作するか、すでに使用できなくなっています。
基本的なプラグインの使用方法¶
Asakusa Frameworkのデプロイメントアーカイブ生成¶
Attention
バージョン 0.10.4 では、ここで紹介する assembleAsakusafw
タスクの代わりに assemble
タスクを利用してください。
またデプロイメント構成の編集については、ここで紹介する方法の代わりに asakusafwOrganizer
ブロックで定義してください。
Asakusa Frameworkを運用環境にデプロイするためのデプロイメントアーカイブを生成します。
運用環境向けの標準的な構成を持つデプロイメントアーカイブを生成するには、 assembleAsakusafw
タスクを実行します。
./gradlew assembleAsakusafw
assembleAsakusafw
タスクを実行すると、 build
配下に asakusafw-${asakusafwVersion}.tar.gz
という名前でデプロイメントアーカイブが作成されます。このアーカイブには Direct I/O , WindGateを含むAsakusa Framework実行環境一式が含まれます。
このデプロイメントアーカイブは運用環境上の$ASAKUSA_HOME配下に展開してデプロイします。より詳しくは、 運用環境の整備 のデプロイメントガイドなどを参照してください。
バッチアプリケーションの同梱¶
attachBatchapps
タスクは、 build/batchc
配下に存在するバッチアプリケーションをデプロイメントアーカイブに含めます。以下は、バッチアプリケーションの生成してこれを含むデプロイメントアーカイブを生成する例です。
./gradlew clean compileBatchapp attachBatchapps assembleAsakusafw
このようにタスクを実行すると、バッチコンパイルを実行後に build
配下に asakusafw-${asakusafwVersion}.tar.gz
が生成され、このアーカイブの batchapps
配下には compileBatchapp
タスクによって build/batchc
配下に生成されたバッチアプリケーションの実行ファイル一式が含まれます。
設定ファイル/アプリケーションライブラリの同梱¶
デプロイメントアーカイブに、特定の運用環境向けの設定ファイルやアプリケーション用の追加ライブラリを含めることもできます。
この機能を使用するには、まずプロジェクトディレクトリの src/dist
配下に特定環境を示す名前(以下この名前を「ディストリビューション名」と呼びます)を持つディレクトリを生成します。このディレクトリは英数小文字のみ使用できます。
ディストリビューション名のディレクトリ配下に、 $ASAKUSA_HOME
のディレクトリ構造と同じ形式で追加したい設定ファイルやライブラリファイルを配置します。このディレクトリ構成がデプロイメントアーカイブにそのまま追加されます。
以下は、 src/dist
配下に myenv
というディストリビューション名を持つのディレクトリを作成し、これに アプリケーション向けの追加ライブラリとYAESS 向けの設定ファイル を配置した例です。
src/dist
└── myenv
├── ext
│ └── lib
│ └── joda-time-2.2.jar
└── yaess
└── conf
└── yaess.properties
src/dist
配下のディレクトリ構成をデプロイメントアーカイブに含めるには、 attachConf<ディストリビューション名>
というタスクを実行します。タスク名の <ディストビューション名>
部分は src/dist
配下のディストリビューション名に対応し、これにマッチしたディレクトリ配下のファイル [1] をデプロイメントアーカイブに含めます。
タスク名の <ディストリビューション名>
部分は大文字/小文字の違いを無視します。例えば src/dist/myenv
に対応するタスクは attachConfMyEnv
にも対応します。
以下は、 src/dist/myenv
配下のファイルを含むデプロイメントアーカイブを生成する例です。
./gradlew attachConfMyEnv assembleAsakusafw
このようにタスクを実行すると、バッチコンパイルを実行後に build
配下に asakusafw-${asakusafwVersion}.tar.gz
が生成され、このアーカイブには src/dist/myenv
以下のディレクトリ構造を含むファイル一式が含まれます。
[1] | . (ドット)から始まる名前を持つファイルやディレクトリは無視され、アーカイブに含まれません。 |
拡張モジュールの同梱¶
Asakusa Frameworkでは、標準のデプロイメントアーカイブに含まれない追加機能を拡張モジュール [2] として提供しています。
拡張モジュールは Asakusa Framworkの標準的なデプロイ構成にプラグインライブラリを追加することで利用することができます。Asakusa Gradle Plugin ではデプロイメントアーカイブの生成時に拡張モジュール取得用のタスクを合わせて実行することで、デプロイメントアーカイブに拡張モジュールを含めることができます。
以下は、拡張モジュール asakusa-windgate-retryable
をデプロイメントアーカイブに含める例です。
./gradlew attachExtensionWindGateRetryable assembleAsakusafw
このようにタスクを実行すると、 build
配下に asakusafw-${asakusafwVersion}.tar.gz
が生成され、このアーカイブには拡張モジュールが含まれた状態となります。今回の例では、アーカイブ内の windgate/plugin
配下に asakusa-windgate-retryable
用のjarファイルが追加されています。
[2] | 拡張モジュールについて、詳しくは 拡張モジュールのデプロイ を参照してください。 |
組み合わせの例¶
これまで説明した内容を組み合わせて利用すると、特定環境向けのリリース用デプロイメントアーカイブをビルド時に作成することができます。
以下は、リリースビルドを想定したデプロイメントアーカイブ生成の実行例です。
./gradlew clean build attachBatchapps attachConfMyEnv attachExtensionWindGateRetryable assembleAsakusafw
このようにタスクを実行すると、テスト済のバッチアプリケーションと設定ファイル、追加ライブラリ、拡張モジュールを含むデプロイメントアーカイブを生成します。
その他のプラグイン機能¶
バッチテストランナーの実行¶
Attention
Asakusa Framework バージョン 0.10.0 より、 testRunBatchapp タスクは非推奨となりました。
testRunBatchapp タスクはインテグレーションテスト用のテストAPIであるバッチテストランナーをGradleタスクとして実行することができます。
このタスクを利用するには、プロジェクトに対してAsakusa on MapReduce Plugin ( asakusafw-mapreduce
) を有効にする必要があります。
testRunBatchapp タスクは gradlew コマンド実行時に以下のコマンドライン引数を指定します。
-
--id
batch-id
¶ 実行するバッチアプリケーションのバッチID
-
--arguments
key1=value1 [,key2=value2]
¶ バッチ引数を
key=value
形式で指定複数のバッチ引数がある場合はカンマ区切りで指定 (
key1=value1,key2=value2
)
testRunBatchapp タスクの実行例は以下の通りです。
./gradlew testRunBatchapp --id example.summarizeSales --arguments date=2011-04-01
See also
バッチテストランナーの詳細は テストドライバーユーザーガイド - バッチテストランナー を参照してください。
Asakusa Gradle Plugin リファレンス¶
Batch Application Plugin¶
タスク¶
Batch Application Plugin は、以下のタスクをプロジェクトに追加します。
Warning
バージョン 0.8.0 以降、ThunderGate関連の設定は利用できません。
Warning
バージョン 0.9.0 以降、以下のタスクは利用できません。
summarizeYaessJob
タスク名 | 依存先 | 型 | 説明 |
---|---|---|---|
generateThunderGateDataModel | - [3] |
GenerateThunderGateDataModelTask [4] |
ThunderGate用のMySQLメタデータからDMDLスクリプトを生成する |
summarizeYaessJob | asakusafw-sdk |
AnalyzeYaessLogTask [5] |
YAESS Log Analyzerを実行する [6] |
[3] | ThunderGateの設定を有効にした場合、 compileDMDL タスクに generateThunderGateDataModel タスクが依存先として追加されます |
[4] | com.asakusafw.gradle.tasks.GenerateThunderGateDataModelTask |
[5] | com.asakusafw.gradle.tasks.AnalyzeYaessLogTask |
[6] | YAESS Log Analyzerやその使い方については、 YAESSログの可視化 を参照してください。 |
規約プロパティ¶
Batch Application Pluginの規約プロパティはビルドスクリプトから 参照名 asakusafw
でアクセスできます [7] 。
この規約オブジェクトは以下のプロパティを持ちます。
プロパティ名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
asakusafwVersion |
String | プラグイン規定のバージョン [8] | プロジェクトが使用するAsakusa Frameworkのバージョン |
[7] | これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention が提供します。 |
[8] | Asakusa Gradle Pluginの該当バージョンが規定するAsakusa Frameworkバージョンを導入します。詳しくは後述の asakusafwVersion を参照してください。 |
asakusafwVersion
¶
Attention
バージョン 0.9.0 以降、 Asakusa Frameworkバージョンの指定は無効になりました。
asakusafwVersion
はアプリケーションプロジェクトで使用するAsakusa Frameworkのバージョンを表します。
Asakusa Gradle Pluginを利用する場合、このプラグインの該当バージョンが規定するAsakusa Frameworkバージョンを導入します。
通常、Asakusa Gradle Pluginはプラグインのバージョンと同一のAsakusa Frameworkバージョンを適用しますが、ホットフィックスリリースが行われた場合などにより異なるバージョンを適用する可能性があります。
アプリケーションプロジェクトで利用される各コンポーネントのバージョンを確認するには、 Asakusa Gradle Plugin が提供する asakusaVersion
タスクを使用します。
なお、検証されていない組み合わせの各Gradle PluginとAsakusa Frameworkバージョンを利用することは非推奨です。
特別な理由がない限り、 asakusafwVersion
の定義はビルドスクリプトでは指定しない(標準の構成を使用する)ことを推奨します。
DSLコンパイラプロパティ¶
Attention
バージョン 0.8.0 以降、 compiler
ブロックの指定は非推奨となりました。
MapReduceコンパイラに対する設定は、後述の MapReduceプロパティ を使用してください。
Attention
バージョン 0.10.4 時点では、 compiler
ブロックではMapReduce DSLコンパイラに対する設定がおこなわれます。
DSLコンパイラ関する規約プロパティは、 asakusafw
ブロック内の参照名 compiler
でアクセスできます [9] 。
この規約オブジェクトは以下のプロパティを持ちます。
プロパティ名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
compiledSourcePackage |
String | ${asakusafw.basePackage}.batchapp |
DSLコンパイラが生成する各クラスに使用されるパッケージ名 |
compiledSourceDirectory |
String | ${project.buildDir}/batchc |
DSLコンパイラが生成する成果物の出力先 |
compilerOptions |
String | XjavaVersion=${targetCompatibility} [10] |
DSLコンパイラオプション [11] |
compilerWorkDirectory |
String | 未指定 |
DSLコンパイラのワーキングディレクトリ |
hadoopWorkDirectory |
String | target/hadoopwork/${execution_id} |
DSLコンパイラが生成するアプリケーション(Hadoopジョブ)が使用するHadoop上のワーキングディレクトリ |
[9] | これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.CompilerConfiguration が提供します。 |
[10] | Javaコンパイラプロパティの targetCompatibility の値が設定されます。 |
[11] | DSLコンパイラオプションについては、 Asakusa on MapReduce リファレンス - Asakusa DSL Compiler for MapReduce リファレンス を参照してください。 |
ThunderGateプロパティ¶
ThunderGateに関する規約プロパティは、 asakusafw
ブロック内の参照名 thundergate
でアクセスできます [12] 。
この規約オブジェクトは以下のプロパティを持ちます。
プロパティ名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
target |
String | 未指定 |
ThunderGateのターゲット。この値をセットすることでThunderGate用のビルド設定が有効になる [13] |
jdbcFile |
String | 未指定 |
generateThunderGateDataModel タスクの実行時に使用するJDBC接続設定ファイルのパス。この値をセットすることでThunderGate用のビルド設定が有効になる [14] |
ddlEncoding |
String | 未指定 |
MySQLメタデータ登録用DDLファイルのエンコーディング |
ddlSourceDirectory |
String | src/${project.sourceSets.main.name}/sql/modelgen |
MySQLメタデータ登録用DDLファイルのソースディレクトリ |
includes |
String | 未指定 |
モデルジェネレータ、およびテストデータテンプレート生成ツールが生成対象とするモデル名を正規表現の書式で指定 |
excludes |
String | 未指定 |
モデルジェネレータ、およびテストデータテンプレート生成ツールが生成対象外とするモデル名を正規表現の書式で指定 |
dmdlOutputDirectory |
String | ${project.buildDir}/thundergate/dmdl |
MySQLメタデータから生成されるDMDLスクリプトの出力先 |
ddlOutputDirectory |
String | ${project.buildDir}/thundergate/sql |
ThunderGate管理テーブル用DDLスクリプトの出力先 |
sidColumn |
String | SID |
ThunderGateが入出力を行う業務テーブルのシステムIDカラム名 |
timestampColumn |
String | UPDT_DATETIME |
ThunderGateが入出力を行う業務テーブルの更新日時カラム名 |
deleteColumn |
String | DELETE_FLAG |
ThunderGateが入出力を行う論理削除フラグカラム名 |
deleteValue |
String | '1' |
ThunderGateが入出力を行う業務テーブルの論理削除フラグが削除されたことを示す値 |
[12] | これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.ThunderGateConfiguration が提供します。 |
[13] | この設定を利用する場合、タスク実行時にAsakusa Frameworkがインストール済みとなっている必要があります。
または jdbcFile をプロパティを設定することで、インストールを行わない状態でタスクが実行できるようになります。 |
[14] | target プロパティを同時に有効にした場合、 jdbcFile プロパティが優先されます。 |
Framework Organizer Plugin¶
タスク¶
Framework Organizer Plugin は、以下のタスクを定義します。
Warning
バージョン 0.9.0 以降、以下のタスクは削除されました。
attachComponentDevelopment
Attention
バージョン 0.7.0 以降、 attach
から始まる各タスクの使用は非推奨となりました。
attach
から始まるタスクはFramework Organizer Pluginが内部で生成し利用します。
デプロイメントアーカイブ構築のカスタマイズ方法について、
バージョン 0.7.0 以降では、 attach
から始まる各タスクを組み合わせる方式から
build.gradle
内の asakusafwOrganizer
ブロックで
デプロイメント構成を定義する方法を推奨するよう変更しています。
詳しくは、 Asakusa Framework デプロイメントガイド や Asakusa Gradle Plugin リファレンス を参照してください。
Warning
バージョン 0.7.0 以降では、以下のタスクは削除されました。
attachAssemble
attachAssembleDev
assembleCustomAsakusafw
assembleDevAsakusafw
複数のデプロイメントアーカイブ構成を管理する機能として、 バージョン 0.7.0 以降ではプロファイル定義による構成機能を提供しています。
詳しくは、 Asakusa Framework デプロイメントガイド や Asakusa Gradle Plugin リファレンス を参照してください。
タスク名 | 依存先 | 型 | 説明 |
---|---|---|---|
attachBatchapps |
- |
Task |
デプロイメント構成にバッチアプリケーションを追加する [15] |
attachComponentCore |
- |
Task |
デプロイメント構成にランタイムコアモジュールを追加する |
attachComponentDirectIo |
- |
Task |
デプロイメント構成にDirect I/Oを追加する |
attachComponentYaess |
- |
Task |
デプロイメント構成にYAESSを追加する |
attachComponentWindGate |
- |
Task |
デプロイメント構成にWindGateを追加する |
attachComponentThunderGate |
- |
Task |
デプロイメント構成にThunderGateを追加する |
attachComponentDevelopment |
- |
Task |
デプロイメント構成に開発ツールを追加する |
attachComponentOperation |
- |
Task |
デプロイメント構成に運用ツールを追加する |
attachExtensionYaessJobQueue |
- |
Task |
デプロイメント構成にYAESS JobQueue Pluginを追加する |
attachExtensionWindGateRetryable |
- |
Task |
デプロイメント構成にWindGate Retryable Pluginを追加する |
attachConf< DistributionName > |
- |
Task |
デプロイメント構成にディストリビューション名に対応するディレクトリを追加する [16] |
attachAssembleDev |
attachBatchapps,
attachComponentCore,
attachComponentDirectIo,
attachComponentYaess,
attachComponentWindGate,
attachComponentDevelopment,
attachComponentOperation |
Task |
開発環境向けのデプロイメント構成を構築する |
attachAssemble |
attachComponentCore,
attachComponentDirectIo,
attachComponentYaess,
attachComponentWindGate,
attachComponentOperation |
Task |
運用環境向けのデプロイメント構成を構築する |
assembleCustomAsakusafw |
- |
Task |
任意のデプロイメント構成を持つデプロイメントアーカイブを生成する |
assembleDevAsakusafw |
attachAssembleDev |
Task |
開発環境向けのデプロイメント構成を持つデプロイメントアーカイブを生成する |
[15] | attachBatchapps タスクを利用するには本プラグインをアプリケーションプロジェクト上で利用する必要があります。 |
[16] | attachConf<DistributionName> タスクを利用するには本プラグインをアプリケーションプロジェクト上で利用する必要があります。 |
規約プロパティ¶
Framework Organizer Plugin の規約プロパティはビルドスクリプトから 参照名 asakusafwOrganizer
でアクセスできます [17] 。
この規約オブジェクトは以下のプロパティを持ちます。
プロパティ名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
asakusafwVersion |
String | プラグイン規定のバージョン [18] | プロジェクトが使用するAsakusa Frameworkのバージョン |
[17] | これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention が提供します。 |
[18] | Asakusa Gradle Pluginの該当バージョンが規定するAsakusa Frameworkバージョンを導入します。詳しくは先述の asakusafwVersion を参照してください。 |
ThunderGateプロパティ¶
ThunderGateの構成に関する規約プロパティは、 asakusafwOrganizer
ブロック内の参照名 thundergate
でアクセスできます [19] 。
この規約オブジェクトは以下のプロパティを持ちます。
プロパティ名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
enabled |
boolean | false | この値をtrueにするとThunderGate用の構成を行う |
target |
String | 未指定 |
デプロイメントアーカイブに含める既定のThunderGateのターゲット名。 |
[19] | これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.ThunderGateConfiguration が提供します。 |