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 のタスクとプロパティで確認します。