Apache Maven は Java のビルド自動化ツールです。
App Engine には、アプリをビルドして App Engine にデプロイする際に使用できる Maven プラグインが用意されています。このプラグインは、Enterprise Application Archive(EAR)プロジェクトをサポートしていません。
始める前に
次のコマンドを実行して、Maven がインストールされているかどうか確認します。インストールされている場合は、そのバージョンも確認します。
mvn -v
Maven がインストールされている場合、
Apache Maven
で始まりバージョン番号(3.9.1
など)が続く長い文字列が表示されます。Maven 3.9.1 以降がインストールされていない場合:
まだ行っていない場合は、こちらの手順に沿って gcloud CLI をダウンロードし、Google Cloud プロジェクトを作成して App Engine アプリを初期化します。
gcloud CLI
app-engine-java
コンポーネントをインストールします。gcloud components install app-engine-java
App Engine Maven プラグインを追加する
App Engine Maven プラグインを使用するには、プロジェクトの pom.xml
ファイルの plugins
セクションに次の行を追加します。
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.56.v20240826</version>
</plugin>
</plugins>
Jetty Maven プラグインを使用してローカルでアプリのテストを行う
開発フェーズでは、Jetty Maven プラグインを起動することによって、開発サーバーでいつでもアプリを実行してテストできます。
開発サーバーでアプリを実行するには:
アプリをまだビルドしていない場合は、次のようにビルドします。
mvn package
ディレクトリをプロジェクトのトップレベル(
myapp
など)に変更し、Maven を起動してアプリを実行します。mvn jetty:run
サーバーが起動してから、ブラウザで
http://localhost:8080/
にアクセスしてアプリを表示します。Ctrl+C キーを押して、アプリと開発サーバーをシャットダウンします。
アプリをビルドし、デプロイする
App Engine Maven プラグインをプロジェクトの pom.xml
ファイルに追加すると、次のコマンドを使用してアプリをビルドしてデプロイできます。
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。pom.xml
ファイルですでにプロジェクト ID を指定している場合は、実行するコマンドに -Dapp.deploy.projectId
プロパティを含める必要はありません。
package
ゴールがアプリをビルドしてパッケージ化します。appengine:deploy
ゴールは次の処理を行います。
アプリの新しいバージョンに一意のバージョン ID を生成します。
新しいバージョンを App Engine にデプロイします。
すべてのトラフィックを新しいバージョンに転送します。
デプロイのデフォルトを変更する
デフォルトのデプロイ動作を変更するには、appengine:deploy
コマンドでパラメータを渡します。たとえば、次のコマンドでは、pom.xml
ファイルで定義されたサービスを特定の Google Cloud プロジェクトにデプロイし、そのサービスにカスタム バージョン ID を割り当て、新しいバージョンの自動トラフィック ルーティングを無効にします。
mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False
また、appengine:deploy
コマンドを使用して、cron.yaml
、dispatch.yaml
、index.yaml
などの構成ファイルをデプロイすることもできます。
詳細については、appengine:deploy
リファレンスをご覧ください。
次のステップ
- GitHub でプラグインのコードを調べて問題を報告する。
- App Engine Maven のゴールとパラメータでタスクのパラメータを指定する方法を学習する。