プロジェクトに 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 |