Apache Maven と App Engine プラグインの使用

Apache Maven は Java のビルド自動化ツールです。

App Engine には、アプリをビルドして App Engine にデプロイする際に使用できる Maven プラグインが用意されています。このプラグインは、Enterprise Application Archive(EAR)プロジェクトをサポートしていません。

始める前に

  1. 次のコマンドを実行して、Maven がインストールされているかどうか確認します。インストールされている場合は、そのバージョンも確認します。

    mvn -v
    

    Maven がインストールされている場合、Apache Maven で始まりバージョン番号(3.5 など)が続く長い文字列が表示されます。

  2. Maven 3.5 以降がインストールされていない場合:

    1. Maven 3.5 以降をダウンロードします。
    2. Maven 3.5 以降をインストールします
  3. まだ行っていない場合は、クイックスタートの手順に沿って Cloud SDK をダウンロードし、Cloud プロジェクトを作成して App Engine アプリを初期化します。

  4. Cloud SDK 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.2.0</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.3.7.v20160115</version>
   </plugin>
</plugins>
App Engine プラグインには Jetty Maven プラグインが含まれています。このプラグインを使用すると、WAR ファイルを作成せずにアプリケーションをすぐにテストできます。

Jetty Maven プラグインを使用してローカルでアプリのテストを行う

開発フェーズでは、Jetty Maven プラグインを起動することによって、開発サーバーでいつでもアプリを実行してテストできます。

開発サーバーでアプリを実行するには:

  1. アプリをまだビルドしていない場合は、次のようにビルドします。

    mvn package
    
  2. ディレクトリをプロジェクトのトップレベル(myapp など)に変更し、Maven を起動してアプリを実行します。

    mvn jetty:run
    
  3. サーバーが起動してから、ブラウザで http://localhost:8080/ にアクセスしてアプリを表示します。

  4. Ctrl+C キーを押して、アプリと開発サーバーをシャットダウンします。

アプリをビルドし、デプロイする

App Engine Maven プラグインをプロジェクトの pom.xml ファイルに追加すると、次のコマンドを使用してアプリをビルドしてデプロイできます。

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

PROJECT_ID は、実際の Cloud プロジェクトの ID に置き換えます。pom.xml ファイルですでにプロジェクト ID を指定している場合は、実行するコマンドに -Dapp.deploy.projectId プロパティを含める必要はありません。

package ゴールがアプリをビルドしてパッケージ化します。appengine:deploy ゴールは次の処理を行います。

  1. アプリの新しいバージョンに一意のバージョン ID を生成します。

  2. 新しいバージョンを App Engine にデプロイします。

  3. すべてのトラフィックを新しいバージョンに転送します。

デプロイのデフォルトを変更する

デフォルトのデプロイ動作を変更するには、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.yamldispatch.yamlindex.yaml などの構成ファイルをデプロイすることもできます。

詳細については、appengine:deploy リファレンスをご覧ください。

次のステップ