Gradle は、柔軟性に優れたビルド自動化システムです。このシステムは宣言型であり、ビルド、テスト、公開、デプロイを自動化するのに使用されます。このページでは、スタンダード環境で Gradle を App Engine プロジェクトとともに使用する方法を説明します。
始める前に
次の前提条件をインストールして構成します。
- Gradle をインストールします(v3.4.1 以降)。 
Google Cloud プロジェクトの設定と検証
Google Cloud プロジェクトを設定して、gcloud CLI をインストールする必要があります。
- Google Cloud コンソールを使用して、 Google Cloud プロジェクトを作成して設定します。 - Google Cloud プロジェクトを選択するか、新規作成します。
- 表示された指示に沿って、App Engine アプリケーションが存在することと、課金が有効になっていることを確認します。
- プロジェクト用の App Engine アプリケーションを作成する必要がある場合は、App Engine アプリケーションを配置するリージョンを選択するように指示されます。
- 指示に従って新しい請求先アカウントを作成するか、既存のアカウントを選択します。
 
- プロジェクトで App Engine アプリケーションが作成され、課金が有効になったら、ダッシュボードが開きます。
 
- プラグインが必要に応じて自動的に SDK をインストールするため、gcloud CLI をインストールする必要はありません。 
新しい Gradle プロジェクトを作成する
シェルを使用して、新しい Gradle プロジェクトを一から作成できます。別の方法でプラグインを使ってみるには、Hello World プロジェクトをダウンロードし、ローカルで実行してデプロイしてください。
- 新しいディレクトリを作成し、そのディレクトリに移動します。 
- 新しいプロジェクトを初期化するには: - gradle init --type java-library; mkdir -p src/main/webapp/WEB-INF; rm src/main/java/Library.java src/test/java/LibraryTest.java
- 次のコードを - build.gradleファイルに追加します。これにより、App Engine Gradle タスク、Maven リポジトリ、App Engine Gradle プラグイン、依存関係、タスク構成が追加されます。
- 次のファイルをプロジェクトに追加する必要があります。テキスト エディタまたは統合開発環境(IDE)を使用して追加してください。 
Java App Engine プロジェクトの概要については、構成ファイルをご覧ください。
Hello World アプリのダウンロード
- Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。 - git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git- あるいは、zip 形式のサンプルをダウンロードして、ファイルを抽出することもできます。 
- サンプルコードが入っているディレクトリに移動します。 - cd java-docs-samples/appengine-java8/helloworld
開発用サーバーを使用してアプリケーションをテストする
- ローカルでの実行中にプロジェクトから Google リソースにアクセスするには、次のコマンドを実行してアプリケーションのデフォルト認証情報を設定します。 - gcloud auth application-default login
- アプリケーション ディレクトリのルートに移動します。 
- 開発フェーズでは、アプリケーションをいつでも開発用サーバーで実行およびテストできます。これには、次のコマンドで Gradle を起動します。 - gradle appengineRun- Gradle をインストールせずに実行することもできます。その場合は、Gradle ラッパーを使用します。 
- サーバーが起動するまで待ちます。アプリケーションが実行された状態でサーバーが起動し、次のようなメッセージが表示されます。 - :compileJava :processResources NO-SOURCE :classes :war :explodeWar :assemble :appengineRun 2018-06-05 22:50:46.231:INFO::main: Logging initialized @321ms Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: Module instance default is running at http://localhost:8080/ Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: The admin console is running at http://localhost:8080/_ah/admin Jun 05, 2018 10:50:49 PM com.google.appengine.tools.development.DevAppServerImpl doStart INFO: Dev App Server is now running 
- アプリが - http://127.0.0.1:8080で実行されていることを確認します。
開発サーバーでデバッグする
ローカルで実行中のアプリケーションをデバッグするには、次の例のように jvmFlags プロパティを設定して、基礎となる JVM でのデバッグを有効にします。
    appengine {
      run {
        jvmFlags = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005']
      }
    }
アプリケーションのホットリロードを有効にする
ホットリロードは、環境を停止することなく、現在実行中のアプリケーション内の 1 つ以上のクラスを更新することです。ホットリロードを有効にするには、次のようにします。
- 変更をスキャンするようローカル サーバーに指示する必要があります。 - appengine { run { automaticRestart = true } }
- アプリの実行中に - explodeWarタスクを実行し、変更内容を展開済みのアプリに直接コピーして、実行中のアプリに変更を反映します。
アプリケーションのデプロイ
アプリケーションをデプロイするには:
gradle appengineDeploy
appengineDeploy タスクと他のすべての Gradle タスクには、使用できるプロパティが関連付けられています。すべてのタスクとプロパティのリストについては、App Engine Gradle のタスクとプロパティをご覧ください。
Gradle ラッパーを使用する
Gradle には、インストールせずに、必要なバージョンの Gradle をダウンロードして実行するためのメカニズムがあります。
Linux / macOS
./gradlew appengineRun
Windows
gradlew.bat appengineRun
Gradle に関するその他の情報については、App Engine Gradle のタスクとプロパティをご覧ください。
次のステップ
- GitHub でプラグインのコードを調べて問題を報告します。
- タスクのプロパティを指定する方法を App Engine Gradle のタスクとプロパティで確認します。