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.7.0</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: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