App Engine Gradle プラグインのタスクとプロパティ

App Engine プラグインをプロジェクトに追加すると、App Engine スタンダード環境のアプリケーションで以下の App Engine 固有の Gradle タスクを使用できます。

タスク 説明
tasks インストールされているタスクのヘルプ情報を表示します。
appengineCloudSdkLogin アカウントのグローバル gcloud CLI の状態を設定します。
appengineDeploy アプリケーションをステージングし、App Engine にデプロイします。
appengineDeployAll アプリケーションとそのすべての有効な yaml 構成ファイルを同時にステージングし、App Engine にデプロイします。
appengineDeployCron cron.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengineDeployDispatch dispatch.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengineDeployDos dos.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengineDeployIndex index.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengineDeployQueue queue.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengineRun App Engine 開発用サーバーを実行します。サーバーの稼働中は、appengine-web.xml が変更されていないかどうか継続的に確認します。変更されている場合、サーバーがアプリケーションを再度読み込みます。appengine-web.xml が変更されても、アプリケーションを停止して再起動する必要はありません。
appengineStage デプロイ用のアプリケーション ディレクトリを生成します。
appengineStart App Engine 開発用サーバーの実行を非同期で開始して、コマンドラインに戻ります。このゴールが実行された場合の動作は run ゴールとほぼ同じですが、Gradle がタスクの処理を続けてサーバーが稼働中になると終了する点が異なります。
appengineStop 実行中の App Engine 開発用ウェブサーバーを停止します。
explodeWar WAR ファイルを展開してビルド ディレクトリに出力します。

すべてのタスクのリストを表示するには、次のコマンドを実行します。

gradle tasks

Gradle のセットアップと使用方法の詳細については、App Engine Gradle の使用をご覧ください。

タスク プロパティ

gradle.build ファイルの内容は、ビルドを記述するための一連のルールです。これは Groovy 言語に基づき、ビルドを記述するためドメイン固有の言語で書かれます。

各タスクには使用可能な下記のプロパティが関連付けられています。これらのプロパティは、構成用クロージャ、タスク、プロパティを使用して、gradle.build ファイルで指定できます。

下記の例で、

  • プラグインの構成用クロージャは appengine です。
  • タスクは run です。
  • port プロパティは 8080 に設定されています。
appengine {  // App Engine tasks configuration
  run {      // local (dev_appserver) configuration (standard environments only)
    port = 8080                 // default
  }

  deploy {   // deploy configuration
    stopPreviousVersion = true  // default - stop the current version
    promote = true              // default - & make this the current version
  }
}

指定するプロパティが少ない場合には、次のように 1 行で設定できます。

  appengine.run.port = 8888

各タスクで使用できるプロパティについては、下記の各セクションをご覧ください。

appengineStage

task(stage)

デプロイ用のアプリケーション ディレクトリを生成します。appengineStage は、appengineDeploy タスクにより使用されます。

次のプロパティを使用できます。

プロパティ説明
compileEncoding JSP のコンパイルに使用する文字エンコード。App Engine スタンダード環境で実行されるアプリケーションにのみ適用されます。
deleteJsps コンパイル後に JSP ソースファイルを削除します。App Engine スタンダード環境で実行されるアプリケーションにのみ適用されます。
disableJarJsps JSP から生成されたクラスの追加を無効にします。App Engine スタンダード環境で実行されるアプリケーションにのみ適用されます。
disableUpdateCheck gcloud CLI の更新確認を無効にします。
enableJarClasses WEB-INF/classes content を Jar で圧縮します。App Engine スタンダード環境で実行されるアプリケーションにのみ適用されます。
useMtimeFileWatcher ソースコードの変更を検出するために mtime ポーリングを使用します。分散ファイル システムを使用してリモートマシンからコードを変更する場合に便利です。
enableJarSplitting 10 MB より大きい JAR ファイルをより小さいフラグメントに分割します。App Engine スタンダード環境にのみ適用されます。
enableQuickstart Eclipse Jetty クイックスタートを使用してサーブレット アノテーションを処理します。App Engine スタンダード環境にのみ適用されます。
jarSplittingExcludes SUFFIXES のカンマ区切りのリストと一致するファイルをすべての JAR ファイルから除外します。App Engine スタンダード環境で実行されるアプリケーションにのみ適用されます。
sourceDirectory 必須。コンパイルしたウェブ アプリケーション ファイルまたは分割した WAR の場所。これは、ステージングのソースとして使用されます。App Engine スタンダード環境にのみ適用されます。デフォルトは、build/exploded-${gradle-module-name} です。
stagingDirectory 必須。アプリケーションのステージング先のディレクトリ。デフォルトは、build/staged-app です。

appengineRun

task(run)

App Engine 開発用ウェブサーバーを実行します。サーバーの稼働中は、appengine-web.xml が変更されていないかどうか継続的に確認します。変更されている場合、サーバーがアプリケーションを再度読み込みます。つまり、appengine-web.xml が変更されても、アプリケーションを停止して再起動する必要はありません。

使用できるプロパティは次のとおりです。一部のプロパティは、ローカル開発用サーバーのコマンドライン フラグと同じです。

プロパティ 説明
environment ローカル開発用サーバーに送信するための環境変数のマップ。例: [key1: "value1", key2: "value2"]
jvmFlags アプリのインスタンスを起動する際に java コマンドに渡す追加の引数。複数回指定できます。例: -Xmx1024m -Xms256m
host アプリケーション サービスをバインドするホスト名。デフォルトは、localhost です。
port アプリケーション サービスをバインドする最小のポート。デフォルトは、8080 です。
serverVersion 起動するサーバーのバージョン。選択肢は 1 と 2-alpha です。デフォルトは 1 です。
services 必須。WEB-INF/web.xml が存在するディレクトリへのパス。デフォルトは build/exploded-app です。
startSuccessTimeout 開発用アプリサーバーをバックグラウンドで起動する前に待機する時間の長さ(秒)(appengineStart を使用するとき)。

appengineDeploy

task(deploy)

アプリケーションをステージングし、App Engine にデプロイします。

プロパティ 説明
appEngineDirectory .yaml 構成ファイル(cron、index など)の場所。ここから構成固有のデプロイ(appengineDeployCron など)が行われます。標準アプリケーションの場合は、.xml 構成ファイルがステージング中に .yaml に変換されて build/staged-app/WEB-INF/appengine-generated に配置されます。
bucket デプロイに関連付けられたファイルのステージングで使われる Google Cloud Storage バケット。この引数を指定しない場合、アプリケーションのデフォルト バケットが使用されます。
imageUrl 特定の Docker イメージを使用してデプロイします。Docker URL は、いずれかの有効な Google Container Registry ホスト名でなければなりません。
projectId この呼び出しに使用する Google Cloud Platform プロジェクト ID。projectId を指定する必要があります。GCLOUD_CONFIG を設定して、gcloud config 状態に設定されたプロジェクトを使用することもできます。
promote すべてのトラフィックを受信するように、デプロイ済みバージョンを昇格させます。デフォルトは True です。
server 接続先の App Engine サーバー。通常、この値を変更する必要はありません。
stopPreviousVersion すべてのトラフィックを受信する新しいバージョンをデプロイするときに、現在実行中のバージョンを停止します。
version このデプロイで作成または置換されるアプリのバージョン。バージョンを指定しない場合は自動生成されます。

グローバル プロパティ

プロパティ説明
tools.cloudSdkHome gcloud CLI の場所を構成するオプションのプロパティ。このプロパティを指定しなかった場合、プラグインは自動的に gcloud CLI をダウンロードします。
tools.cloudSdkVersion 目的の gcloud CLI のバージョンを指定するオプションのパラメータ。