Asakusa Gradle Plugin リファレンス

この文書では、Asakusa Gradle Pluginが提供する機能とインターフェースについて個々に解説します。

リポジトリ

Asakusa Gradle PluginはAsakusa FrameworkのMavenリポジトリ( http://asakusafw.s3.amazonaws.com/maven/releases )に以下のMavenアーティファクトが登録されています。

Asakusa Gradle PluginのMavenアーティファクト
グループID アーティファクトID 説明
com.asakusafw.gradle asakusa-distribution ディストリビューションプラグイン ( ディストリビューションプラグインの利用 )。

ディストリビューションプラグインの利用

Asakusa Gradle Pluginを利用する場合には、プロジェクトに対してディストリビューションプラグイン com.asakusafw.gradle:asakusa-distribution を有効にします。

ディストリビューションプラグインはAsakusa Frameworkのリリース時に動作検証を行った各サブプロジェクトの組み合わせによる Gradle Pluginのバージョンを自動的に適用し、これらを単一のバージョンで利用できるようにします。 将来サブプロジェクトが追加された場合や構成が変更になった場合にも、マイグレーションの手順がシンプルになります。

例えば、ディストリビューションプラグインのバージョン 0.10.0 は以下のGradle Pluginを自動的に適用します。

  • com.asakusafw:asakusa-gradle-plugins:0.10.0
  • com.asakusafw.spark:asakusa-spark-gradle:0.5.0
  • com.asakusafw.m3bp:asakusa-m3bp-gradle:0.3.0

See also

Gradle Pluginによってアプリケーションプロジェクトに適用される各コンポーネントのバージョンを確認する方法は、後述の バージョンの確認 を参照してください。

使用方法

アプリケーションプロジェクトからAsakusa Gradle Pluginを利用する場合、 ビルドスクリプト build.gradlebuildscript ブロック内に利用するAsakusa Gradle PluginのMavenアーティファクトと、これを取得するためのMavenリポジトリのURLを定義します。

以下は、ビルドスクリプトにディストリビューションプラグインを適用する例です。

build.gradle
buildscript {
    repositories {
        maven { url 'http://asakusafw.s3.amazonaws.com/maven/releases' }
    }
    dependencies {
        classpath group: 'com.asakusafw.gradle', name: 'asakusa-distribution', version: '0.10.2'
    }
}

Asakusa Gradle Plugin 一覧

Asakusa Gradle Pluginはいくつかのプラグインから構成されています。以下にその一覧を示します。

Asakusa Gradle Plugin 一覧
プラグインID プラグイン名 自動適用 説明
asakusafw-sdk Batch Application Plugin java Asakusa Frameworkのバッチアプリケーションを開発を行うための支援機能をプロジェクトに追加する。
asakusafw-organizer Framework Organizer Plugin - Asakusa Frameworkを利用した開発環境の構築や、運用環境へのデプロイを行うための援機能を提供する。

また、以下のプラグインは上記のプラグインに対して特定プラットフォームやコンポーネントを利用するための機能を追加します。

Asakusa Gradle Plugin 拡張プラグイン一覧
プラグインID プラグイン名 自動適用 説明
asakusafw-mapreduce Asakusa on MapReduce Plugin - MapReduce向けのバッチアプリケーションを生成、実行するための機能を導入する。
asakusafw-spark Asakusa on Spark Plugin - Spark向けのバッチアプリケーションを生成、実行するための機能を導入する。
asakusafw-m3bp Asakusa on M3BP Plugin - M3 for Batch Processing 向けのバッチアプリケーションを生成、実行するための機能を導入する。
asakusafw-vanilla Asakusa Vanilla Plugin - Asakusa Vanilla 向けのバッチアプリケーションを生成、実行するための機能を導入する。

使用方法

Asakusa Gradle Pluginの各プラグインを使うためには、ビルドスクリプトに apply plugin: <プラグインID> という設定を含めます。 以下、設定例です。

build.gradle
apply plugin: 'asakusafw-sdk'
apply plugin: 'asakusafw-organizer'
apply plugin: 'asakusafw-spark'
apply plugin: 'asakusafw-m3bp'

バージョンの確認

アプリケーションプロジェクトで使用する各コンポーネントのバージョンを表示するには、asakusaVersion タスクを実行します。

./gradlew asakusaVersion

asakusaVersion タスクはビルドスクリプトの設定を解析し、以下のようにプロジェクトで利用するコンポーネントのバージョンを表示します。

> Task :asakusaVersions
Asakusa Gradle Plug-ins: 0.10.0
Asakusa SDK: 0.10.0
JVM: 1.8
Asakusa Language: 0.5.0
Asakusa Vanilla: 0.5.0
Asakusa on Spark: 0.5.0
Spark: 2.2.0
Asakusa on M3BP: 0.3.0

Batch Application Plugin

Batch Application Plugin は、Asakusa Framework の バッチアプリケーション開発を行うための支援機能を提供します。

Batch Application Plugin はAsakusa Framework の バッチアプリケーションプロジェクトに対して、以下のような機能を提供します。

  • DMDLスクリプトからデータモデルクラスを生成するタスクの提供
  • Gradle標準のJavaコンパイルタスクに対して、Operator DSLコンパイラによる演算子実装クラス、演算子ファクトリクラスの生成を行うための設定を追加
  • Asakusa DSLとして記述したJavaソースファイル一式に対して、Batch DSLコンパイラによるバッチアプリケーション実行モジュールの生成を行うタスクの提供
  • テストドライバーを利用したテストケースを作成するためのテストデータ定義シートのテンプレートファイルを生成するタスクの提供
  • Gradle標準のEclipseのタスクに対して、Asakusa Framework用の設定を追加

Note

このプラグインはGradleが提供するJavaプラグインやEclipseプラグインを拡張して作成されています。

タスク

Batch Application Plugin は、以下のタスクをプロジェクトに追加します。

Batch Application Plugin - タスク
タスク名 プラグイン 説明
asakusaVersion asakusafw-sdk - プロジェクトが利用する各コンポーネントのバージョンを表示する
asakusaUpgrade asakusafw-sdk - プロジェクトが利用するGradleコンポーネントをアップデートする
compileDMDL asakusafw-sdk CompileDmdlTask [1] DMDLコンパイラを使ってデータモデルクラスを生成する
compileBatchapp asakusafw-sdk CompileBatchappTask [2] プロジェクトのビルド構成に基づくBatch DSLコンパイラを使ってバッチアプリケーションを生成する
jarBatchapp asakusafw-sdk Jar バッチアプリケーションアーカイブを生成する
generateTestbook asakusafw-sdk GenerateTestbookTask [3] テストデータ定義シートを生成する
generateHiveDDL asakusafw-sdk GenerateHiveDdlTask [4] DMDLからHive用のDDLファイルを生成する
[1]com.asakusafw.gradle.tasks.CompileDmdlTask
[2]com.asakusafw.gradle.tasks.CompileBatchappTask
[3]com.asakusafw.gradle.tasks.GenerateTestbookTask
[4]com.asakusafw.gradle.tasks.GenerateHiveDdlTask

また、Batch Application Pluginは以下のタスクに対してタスク依存関係を追加します。

Batch Application Plugin - タスク依存関係
タスク名 依存先
compileJava compileDMDL
compileBatchapp classes
jarBatchapp compileBatchapp
assemble compileBatchapp

依存関係の管理

Batch Application Plugin は、以下の依存関係設定をプロジェクトに追加します。

Batch Application Plugin - 依存関係設定
名前 説明
provided アプリケーションのビルド時に依存するが、アプリケーションの実行時には実行環境に配置されている実体(jarファイルなど)を使用する依存関係設定
embedded プロジェクトディレクトリ配下に実体(jarファイルなど)を配置する依存関係設定

リポジトリ

Batch Application Plugin は、以下のリポジトリをプロジェクトに追加します。

Batch Application Plugin - リポジトリ
名前/URL 説明
http://repo1.maven.org/maven2/ Mavenのセントラルリポジトリ
http://asakusafw.s3.amazonaws.com/maven/releases Asakusa Frameworkのリリース用Mavenリポジトリ
http://asakusafw.s3.amazonaws.com/maven/snapshots Asakusa Frameworkのスナップショット用Mavenリポジトリ

Tip

プロジェクトに固有のリポジトリを追加する場合、ビルドスクリプトのプラグイン定義 ( apply plugin: xxx ) 位置の前にリポジトリ定義を追加すると、プラグインが標準で設定するリポジトリよりも優先して使用されます。 開発環境でインハウスリポジトリを優先して利用したい場合などは、プラグイン定義の前にリポジトリ定義を追加するとよいでしょう。

規約プロパティ

Batch Application Pluginの規約プロパティはビルドスクリプトから 参照名 asakusafw でアクセスできます [5] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - 規約プロパティ ( asakusafw ブロック )
プロパティ名 デフォルト値 説明
maxHeapSize String 1024m プラグインが実行するJavaプロセスの最大ヒープサイズ
logbackConf String src/${project.sourceSets.test.name}/resources/logback-test.xml プロジェクトのLogback設定ファイル [6]
basePackage String ${project.group} プラグインの各タスクでJavaソースコードの生成時に指定する基底Javaパッケージ
[5]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention が提供します。
[6]Logback設定ファイルの詳細は次のドキュメントを参照してください: http://logback.qos.ch/manual/configuration.html

コアプロパティ

Asakusa Frameworkコアに関する規約プロパティは、 asakusafw ブロック内の参照名 core でアクセスできます [7] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - コアプロパティ ( core ブロック )
プロパティ名 デフォルト値 説明
version String コアライブラリのバージョン コアライブラリのバージョンを保持する。この値は変更不可。
[7]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.CoreConfiguration が提供します。

DMDLプロパティ

DMDLに関する規約プロパティは、 asakusafw ブロック内の参照名 dmdl でアクセスできます [8] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - DMDLプロパティ ( dmdl ブロック )
プロパティ名 デフォルト値 説明
dmdlEncoding String UTF-8 DMDLスクリプトのエンコーディング
dmdlSourceDirectory String src/${project.sourceSets.main.name}/dmdl DMDLスクリプトのソースディレクトリ
[8]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.DmdlConfiguration が提供します。

データモデル生成プロパティ

データモデル生成に関する規約プロパティは、 asakusafw ブロック内の参照名 modelgen でアクセスできます [9] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - データモデル生成プロパティ ( modelgen ブロック )
プロパティ名 デフォルト値 説明
modelgenSourcePackage String ${asakusafw.basePackage}.modelgen データモデルクラスに使用されるパッケージ名
modelgenSourceDirectory String ${project.buildDir}/generated-sources/modelgen データモデルクラスのソースディレクトリ
[9]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.ModelgenConfiguration が提供します。

Javaコンパイラプロパティ

Javaコンパイラ関する規約プロパティは、 asakusafw ブロック内の参照名 javac でアクセスできます [10] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - Javaコンパイラプロパティ ( javac ブロック )
プロパティ名 デフォルト値 説明
annotationSourceDirectory String ${project.buildDir}/generated-sources/annotations アノテーションプロセッサが生成するJavaソースの出力先
processorOption Object アノテーションプロセッサによる生成処理に必要な最低限のもの アノテーションプロセッサに対するオプションを <key>, <value> の形式で指定する
processorOptions Map<?, ?> アノテーションプロセッサによる生成処理に必要な最低限のもの アノテーションプロセッサに対するオプションをMap形式で指定する
sourceEncoding String UTF-8 プロジェクトのソースファイルのエンコーディング
sourceCompatibility JavaVersion。Stringも利用可能。 例: '1.8' 1.8 Javaソースのコンパイル時に使用するJavaバージョン互換性
targetCompatibility JavaVersion。Stringも利用可能。例: '1.8' 1.8 クラス生成のターゲットJavaバージョン
[10]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.JavacConfiguration が提供します。

MapReduceプロパティ

Spark DSLコンパイラに関する規約プロパティは、 asakusafw ブロック内の参照名 mapreduce でアクセスできます。

この規約オブジェクトについては、Asakusa on Sparkの以下のドキュメントを参照してください。

Sparkプロパティ

Spark DSLコンパイラに関する規約プロパティは、 asakusafw ブロック内の参照名 spark でアクセスできます。

この規約オブジェクトについては、Asakusa on Sparkの以下のドキュメントを参照してください。

M3BPプロパティ

M3BP DSLコンパイラに関する規約プロパティは、 asakusafw ブロック内の参照名 m3bp でアクセスできます。

この規約オブジェクトについては、 Asakusa on M3BP の以下のドキュメントを参照してください。

テストツールプロパティ

テストツールに関する規約プロパティは、 asakusafw ブロック内の参照名 testtools でアクセスできます [11] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - テストツールプロパティ ( testtools ブロック )
プロパティ名 デフォルト値 説明
testDataSheetFormat String ALL テストデータ定義シートのフォーマット [12]
testDataSheetDirectory String ${project.buildDir}/excel テストデータ定義シートの出力先
[11]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwPluginConvention.TestToolsConfiguration が提供します。
[12]テストデータ定義シートのフォーマット指定値は、 Excelによるテストデータ定義 - formatオプション を参照してください。

SDKプロパティ

アプリケーションSDKライブラリ [13] に関する規約プロパティは、 asakusafw ブロック内の参照名 sdk でアクセスできます [14] 。 この規約オブジェクトは以下のプロパティを持ちます。

Batch Application Plugin - SDKプロパティ ( sdk ブロック )
プロパティ名 デフォルト値 説明
core Object true この値をtrueにするとコアライブラリ(実行ライブラリやDSL語彙など)を依存ライブラリに追加する。 true または false を指定可能。
dmdl Object true この値をtrueにするとDMDLライブラリ(DMDLコンパイラなど)を依存ライブラリに追加する。 true または false を指定可能。
operator Object true この値をtrueにするとOprator DSLライブラリ(Operator DSLコンパイラなど)を依存ライブラリに追加する。 true または false を指定可能。
testing Object true この値をtrueにするとテストツールライブラリ(テストドライバなど)を依存ライブラリに追加する。 true または false を指定可能。
testkit Object vanilla テストドライバで利用する実行エンジンを指定する。 vanilla (Asakusa Vanilla) , mapreduce (Hadoop MapReduce) , mapreduce-emulation (エミュレーションモード) を指定可能 [15]
directio Object true この値をtrueにするとDirect I/Oライブラリを依存ライブラリに追加する。 true または false を指定可能。
windgate Object true この値をtrueにするとWindGateライブラリを依存ライブラリに追加する。 true または false を指定可能。
yaess Object true この値をtrueにするとバッチアプリケーションのコンパイル時にYAESSのワークフロースクリプトを追加する。 true または false を指定可能。
hive Object false この値をtrueにするとDirect I/O Hiveライブラリを依存ライブラリに追加する。 true または false を指定可能。
[13]アプリケーションSDKライブラリについては、 Asakusa Gradle Plugin ユーザーガイド - 依存ライブラリの管理 も参照してください。
[14]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwSdkExtension が提供します。
[15]標準の設定以外の実行エンジンの利用は非推奨です。

Eclipse Pluginの拡張

Batch Application Plugin は Gradleが提供するEclipse Pluginのタスクに対して、以下のようなEclipseプロジェクトの追加設定を行います。

  • OperatorDSLコンパイラを実行するためのAnnotation Processorの設定
  • Javaのバージョンやエンコーディングに関する設定

また、Batch Application Pluginが設定する規約プロパティの情報を .settings/com.asakusafw.asakusafw.prefs に出力します。

GradleからEclipseプロジェクト用の定義ファイルを生成する方法については、 Eclipse定義ファイルの作成 を参照してください。

IntelliJ IDEAの利用

Asakusa FrameworkのアプリケーションプロジェクトはIntelliJ IDEAのGradleプロジェクトとして利用することもできます。

詳しくは、 IntelliJ IDEAの利用 を参照してください。

Attention

Asakusa Framework バージョン 0.10.2 では、過去バージョンで提供していた IDEA Pluginの拡張と idea タスクの利用は非推奨となりました。 IntelliJ IDEAのバージョンによっては、これらの機能は正しく動作しません。

IntelliJ IDEAを利用する場合、 IntelliJ IDEAの利用 のドキュメント内容に従って利用してください。

Framework Organizer Plugin

Framework Organizer Plugin は、Asakusa Framework を 利用した開発環境の構築や、運用環境に対するデプロイモジュールの構成管理機能を提供します。

Framework Organizer Plugin が提供する機能には次のようなものがあります。

  • Asakusa Frameworkのデプロイメントモジュールの構成を定義し、デプロイメントアーカイブを生成するタスクの提供
  • Asakusa Frameworkが提供する各コンポーネントの設定や拡張モジュールの利用などを環境ごとに設定するプロファイル管理機能の提供
  • Asakusa Frameworkを開発環境へインストールするタスクの提供

タスク

Framework Organizer Plugin は、以下のタスクを定義します。

Framework Organizer Plugin - タスク
タスク名 依存先 説明
assembleAsakusafw - Task 運用環境向けのデプロイメント構成を持つデプロイメントアーカイブを生成する
installAsakusafw - Task 開発環境向けのデプロイメント構成をローカル環境にインストールする

Note

Framework Organizer Pluginは上記のタスク一覧の他に、プラグイン内部で attach から始まるタスクを生成し利用します。

リポジトリ

Framework Organizer Plugin は、 Batch Application Plugin のリポジトリ定義と共通の設定を使用します。

Tip

Batch Application Plugin と同様に、プロジェクトに固有のリポジトリを追加する場合、ビルドスクリプトのプラグイン定義 ( apply plugin: 'xxx' ) 位置の前にリポジトリ定義を追加すると、プラグインが標準で設定するリポジトリよりも優先して使用されます。

規約プロパティ

Framework Organizer Plugin の規約プロパティはビルドスクリプトから 参照名 asakusafwOrganizer でアクセスできます [16] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - 規約プロパティ
プロパティ名 デフォルト値 説明
assembleDir String ${project.buildDir}/asakusafw-assembly デプロイメント構成の構築時に利用するワーキングディレクトリのプレフィックス
[16]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention が提供します。

バッチアプリケーションプロパティ

バッチアプリケーションの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 batchapps でアクセスできます [17] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - バッチアプリケーションプロパティ ( batchapps ブロック )
プロパティ名 デフォルト値 説明
enabled boolean true この値をtrueにするとデプロイメントアーカイブにプロジェクトのバッチアプリケーションを含める
[17]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.BatchappsConfiguration が提供します。

Hadoopプロパティ

Hadoopの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 hadoop でアクセスできます [18] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - Hadoopプロパティ ( hadoop ブロック )
プロパティ名 デフォルト値 説明
embed boolean false この値をtrueにするとデプロイメントアーカイブにHadoopライブラリーを含める
[18]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.HadoopConfiguration が提供します。

See also

Hadoopプロパティの利用方法については、 Asakusa on M3BPユーザーガイド - Hadoopとの連携 を参照してください。

MapReduceプロパティ

MapReduce DSLコンパイラが生成するバッチアプリケーションの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 mapreduce でアクセスできます。

この規約オブジェクトについては、Asakusa on MapReduceの以下のドキュメントを参照してください。

Sparkプロパティ

Spark DSLコンパイラが生成するバッチアプリケーションの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 spark でアクセスできます。

この規約オブジェクトについては、Asakusa on Sparkの以下のドキュメントを参照してください。

M3BPプロパティ

M3BP DSLコンパイラが生成するバッチアプリケーションの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 m3bp でアクセスできます。

この規約オブジェクトについては、 Asakusa on M3BP の以下のドキュメントを参照してください。

Direct I/Oプロパティ

Direct I/Oの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 directio でアクセスできます [19] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - Direct I/Oプロパティ ( directio ブロック )
プロパティ名 デフォルト値 説明
enabled boolean true この値をtrueにするとDirect I/O用の構成を行う
[19]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.DirectIoConfiguration が提供します。

Hiveプロパティ

Direct I/O Hiveの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 hive でアクセスできます [20] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - Hiveプロパティ ( hive ブロック )
プロパティ名 デフォルト値 説明
enabled boolean false この値をtrueにすると Direct I/O Hive連携モジュール用の構成を行う
libraries java.util.List org.apache.hive:hive-exec:1.2.2 Directi I/O Hiveが実行時に使用するHiveライブラリ
[20]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.HiveConfiguration が提供します。

テストドライバープロパティ

テストモジュール用の構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 testing でアクセスできます [21] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - テストモジュールプロパティ ( testing ブロック )
プロパティ名 デフォルト値 説明
enabled boolean false この値をtrueにするとテストモジュール用の構成を行う
[21]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.TestingConfiguration が提供します。

WindGateプロパティ

WindGateの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 windgate でアクセスできます [22] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - WindGateプロパティ ( windgate ブロック )
プロパティ名 デフォルト値 説明
enabled boolean true この値をtrueにするとWindGate用の構成を行う
retryableEnabled boolean false この値をtrueにするとWindGateプラグイン asakusa-windgate-retryable を追加する [23]
sshEnabled boolean true この値をtrueにするとHadoopブリッジ ( windgate-ssh ) を追加する [24]
[22]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.WindGateConfiguration が提供します。
[23]詳しくは WindGateユーザーガイド - 再試行可能なデータ転送プロセス を参照してください。
[24]詳しくは WindGateユーザーガイド - SSH経由でリモートのHadoopを利用する を参照してください。

YAESSプロパティ

YAESSの構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 yaess でアクセスできます [25] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - YAESSプロパティ ( yaess ブロック )
プロパティ名 デフォルト値 説明
enabled boolean true この値をtrueにするとYAESS用の構成を行う
hadoopEnabled boolean true この値をtrueにするとHadoopブリッジ ( yaess-hadoop ) を追加する [26]
jobqueueEnabled boolean false この値をtrueにするとYAESSプラグイン asakusa-yaess-jobqueue を追加する [27]
toolsEnabled boolean true この値をtrueにするとYAESS拡張ツールを追加する
iterativeEnabled boolean true この値をtrueにするとYAESSのIterative Extensions向け拡張モジュールを追加する [28]
[25]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.YaessConfiguration が提供します。
[26]詳しくは YAESSユーザーガイド - SSHを経由してHadoopジョブを実行する を参照してください。
[27]詳しくは YAESS JobQueue - JobQueueクライアントプラグインの利用方法 を参照してください。
[28]Iterative ExtensionsについてはAsakusa on Sparkのドキュメント Asakusa on Spark Iterative Extensions を参照してください。

フレームワーク拡張プロパティ

Asakusa Frameworkの拡張構成に関する規約プロパティは、 asakusafwOrganizer ブロック内の参照名 extension でアクセスできます [29] 。 この規約オブジェクトは以下のプロパティを持ちます。

Framework Organizer Plugin - フレームワーク拡張プロパティ ( extension ブロック )
プロパティ名 デフォルト値 説明
libraries java.util.List [] $ASAKUSA_HOME/ext/lib 配下に配置するライブラリ [30]
[29]これらのプロパティは規約オブジェクト com.asakusafw.gradle.plugins.AsakusafwOrganizerPluginConvention.ExtensionConfiguration が提供します。
[30]明示的に指定されたライブラリのみを配置し、明示的でない依存ライブラリ等は自動的に配置しません。

デプロイメントアーカイブの編集

デプロイメントアーカイブの構成方法として、コンポーネントの規約プロパティによってデプロイ構成を編集する機能の他に、デプロイメントアーカイブに任意のファイルを追加する機能を利用できます。

この機能は、 asakusafwOrganizer ブロック内の参照名 assembly でアクセスできます [31]

以下は、 assembly の利用例です [32]

build.gradle
asakusafwOrganizer {
    profiles.prod {
        assembly.into('.') {
            put 'src/dist/prod'
            replace 'asakusa-resources.xml', inputCombineMax: '24'
        }
    }
}

assembly.into は引数に指定したパス上に、ブロック配下の定義で対象とするファイルを追加します。

コンポーネントの規約プロパティによる構成で追加されるファイルと同名のファイルが含まれる場合は、ここで追加するファイルで上書きされるため、特定環境向けに構成した設定ファイルなどを含めることができます。

assembly.into ブロック内では以下のような指定が可能です [33]

put
デプロイメントアーカイブ追加するディレクトリやファイルのパスを指定します。 相対パスで指定した場合はプロジェクトディレクトリが起点となります。
replace

put の指定で追加の対象となるファイルに対して置換を行います。 第1引数は置換の対象となるファイル名を指定します。ここで指定したパスは後方一致で評価されます。 置換の対象となるファイル内の @key@ のように @ 文字で囲まれた文字列が置換対象となります。

後の引数に、置換対象文字列をMap形式 ( key:value )で指定します。

[31]これらの機能は com.asakusafw.gradle.assembly.AsakusafwAssembly が提供します。
[32]assembly の利用例は、 Asakusa Framework デプロイメントガイド も参照してください。
[33]これらの機能は com.asakusafw.gradle.assembly.AssemblyHandler が提供します。