App Engine Maven プラグインのゴールとパラメータ

プロジェクトに gcloud CLI ベースの App Engine Maven プラグインを追加すると、App Engine に固有の次の Maven のゴールが使用可能になります。

目標 説明
appengine:cloudSdkLogin アカウントのグローバル gcloud CLI の状態を設定します。
appengine:deploy アプリケーションをステージングし、App Engine にデプロイします。
appengine:deployAll アプリケーションとそのすべての有効な yaml 構成ファイルを同時にステージングし、App Engine にデプロイします。
appengine:deployCron cron.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengine:deployDispatch dispatch.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengine:deployDos dos.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengine:deployIndex index.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengine:deployQueue queue.yaml 構成ファイルをステージングし、App Engine にデプロイします。
appengine:help App Engine Maven プラグインに関するヘルプ情報を表示します。
appengine:run App Engine 開発用サーバーを実行します。サーバーの稼働中は、appengine-web.xml が変更されていないかどうか継続的に確認します。変更されている場合、サーバーがアプリケーションを再度読み込みます。appengine-web.xml が変更されても、アプリケーションを停止して再起動する必要はありません。従来のバンドル サービスでは、この目標がサポートされています。
appengine:stage デプロイ用のアプリケーション ディレクトリを生成します。
appengine:start App Engine 開発用サーバーを非同期で実行開始してから、コマンドラインに戻ります。このゴールが実行された場合の動作は run ゴールとほぼ同じですが、Maven がゴールの処理を続けて、サーバーが稼働中になると終了する点が異なります。従来のバンドル サービスでは、この目標がサポートされています。
appengine:stop 実行中の App Engine 開発用ウェブサーバーを停止します。従来のバンドル サービスでは、この目標がサポートされています。

Maven の設定と使用方法の詳細については、Maven の使用をご覧ください。

パラメータの使用

各ゴールに、pom.xml ファイルで指定できるパラメータに関連付けられています。例:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.1</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
     </configuration>
  </plugin>
</plugins>

また、次のパターン -D[USER_PROPERTY]=[PARAMETER_VALUE] のように、コマンドラインで構成パラメータを定義することもできます。

たとえば、アプリケーションのステージング先ディレクトリを指定するには、次のように入力します。

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

各ゴールに使用可能なパラメータのリストについては、以下のセクションをご覧ください。

appengine:deploy

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

次のパラメータを使用できます。一部のパラメータは、gcloud app deploy コマンドライン フラグ、または gcloud app services コマンドライン フラグに対応しています。

パラメータ 説明 ユーザー プロパティ
appEngineDirectory app.yaml とサポートされている他の App Engine 構成ファイルを含むディレクトリ。デフォルトは ${basedir}/src/main/appengine です。 app.stage.appEngineDirectory
artifact デプロイする JAR アーカイブまたは WAR アーカイブの場所。デフォルトは ${project.build.directory}/${project.build.finalName}.${project.packaging} です。 app.stage.artifact
bucket デプロイに関連するファイルのステージングで使用される Cloud Storage バケット。この引数が指定されない場合は、アプリケーションのデフォルト バケットが使用されます。 app.deploy.bucket
cloudSdkPath Google Cloud CLI の場所を構成するパラメータ(省略可能)。デフォルトは、PATH からの自動検出または標準のインストール場所です。 cloudSdkPath
deployables デプロイするサービスまたは構成に関する YAML ファイル。デフォルトは、ステージング ディレクトリ内の app.yaml ファイルです。見つからない場合、ステージング ディレクトリ内で必要な構成ファイル(app.yaml など)を自動生成しようと試みます。 app.deploy.deployables
dockerDirectory Dockerfile および他の Docker リソースを含むディレクトリ。デフォルトは ${basedir}/src/main/docker/ です。 app.stage.dockerDirectory
imageUrl 特定の Docker イメージを使用してデプロイします。ImageUrl は、docker.pkg.dev/foo などの有効な Artifact Registry 名であることが必要です。ここで foo はイメージ名です。 app.deploy.imageUrl
projectId この呼び出しに使用する Google Cloud プロジェクト名。デフォルトは、gcloud の初期設定時に選択した現在のプロジェクトです。 app.deploy.projectId
promote すべてのトラフィックを受信するように、デプロイ済みバージョンを昇格させます。デフォルトは True です。 app.deploy.promote
server 接続先の App Engine サーバー。通常、この値を変更する必要はありません。 app.deploy.server
stagingDirectory 必須。アプリケーションのステージング先のディレクトリ。デフォルトは ${project.build.directory}/appengine-staging です。 app.stage.stagingDirectory
stopPreviousVersion すべてのトラフィックを受信する新しいバージョンをデプロイする際に、直前に実行中のバージョンを停止します。 app.deploy.stopPreviousVersion
version このデプロイメントによって作成または置換されるアプリのバージョン。バージョンを指定しない場合は自動生成されます。 app.deploy.version

appengine:help

App Engine Maven プラグインに関するヘルプ情報を表示します。パラメータの詳細を表示するには、以下を呼び出します。

mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]

以下のパラメータを使用できます。

パラメータ 説明 ユーザー プロパティ
detail true の場合、各ゴールで設定可能なすべてのプロパティを表示します。デフォルトは False です。 detail
goal ヘルプを表示するゴールの名前。指定しない場合は、すべてのゴールが表示されます。 goal
indentSize インデント レベルあたりのスペースの数。正の数でなければなりません。デフォルトは 2 です。 indentSize
lineLength 表示行の最大長。正の数でなければなりません。デフォルトは、80 です。 lineLength

appengine:run

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

以下のパラメータを使用できます。そのうちのいくつかは、ローカル開発用サーバー コマンドライン フラグに対応します。

プロパティ 説明 プラグイン構成 コマンドライン構成
automaticRestart ウェブ アプリケーション ファイル(リソースまたはクラスファイル)が変更されたときに、インスタンスを自動的に再起動します。コンパイル済みのクラスファイルをウェブアプリ アプリケーションの正しいディレクトリに配置するように Maven を構成するには、Maven の出力ディレクトリの設定を変更する必要があります。
<build>
  <outputDirectory>
    target/${project.artifactId}-${project.version}/WEB-INF/classes
  </outputDirectory>
  ...
<plugins>
...
devserver.automaticRestart app.devserver.automaticRestart
environment ローカル開発用サーバーに送信するための環境変数のマップ。例:
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags アプリのインスタンスを起動する際に java コマンドに渡す追加の引数。複数回指定できます。例:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host アプリケーション サービスをバインドするホスト名。デフォルトは、localhost です。 devserver.host app.devserver.host
port アプリケーション サービスをバインドする最小のポート。デフォルトは、8080 です。 devserver.port app.devserver.port
serverVersion 起動するサーバーのバージョン。選択肢は 1 と 2-alpha です。デフォルトは 1 です。 devserver.serverVersion app.devserver.serverVersion
services 必須。WEB-INF/web.xml が存在するディレクトリへのパス。デフォルトは build/exploded-app です。 devserver.services app.devserver.services

appengine:stage

デプロイ用のアプリケーション ビルド ディレクトリを生成します。

以下のパラメータを使用できます。

パラメータ 説明 ユーザー プロパティ
appEngineDirectory app.yaml とサポートされている他の App Engine 構成ファイルを含むディレクトリ。デフォルトは ${basedir}/src/main/appengine です。 app.stage.appEngineDirectory
artifact デプロイする JAR アーカイブまたは WAR アーカイブの場所。デフォルトは ${project.build.directory}/${project.build.finalName}.${project.packaging} です。 app.stage.artifact
cloudSdkPath gcloud CLI の場所を構成するオプションのパラメータ。 cloudSdkPath
dockerDirectory Dockerfile および他の Docker リソースを含むディレクトリ。デフォルトは ${basedir}/src/main/docker/${basedir}/src/main/docker/ です。 app.stage.dockerDirectory
stagingDirectory 必須。アプリケーションのステージング先のディレクトリ。デフォルトは ${project.build.directory}/appengine-staging です。 app.stage.stagingDirectory

appengine:start

App Engine 開発用ウェブサーバーを非同期で起動して稼働中にしてから、コマンドラインに戻ります。このゴールが実行された場合の動作は run ゴールとほぼ同じですが、Maven がゴールの処理を続けて、サーバーが稼働中になると終了する点が異なります。

以下のパラメータを使用できます。

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

appengine:stop

実行中の App Engine 開発用ウェブサーバーを停止します。

以下のパラメータを使用できます。

パラメータ 説明 プラグイン構成 コマンドライン構成
host 管理サーバーをバインドするホスト名。デフォルトは localhost です。 devserver.adminHost app.devserver.adminHost
port 管理サーバーをバインドするポート。デフォルトは 8000 です。 devserver.adminPort app.devserver.adminPort
cloudSdkHome gcloud CLI の場所を構成するオプションのパラメータ。このプロパティを指定しなかった場合、プラグインは自動的に gcloud CLI をダウンロードします。 cloudSdkHome cloudSdkHome