Gradle は、柔軟性とパフォーマンスに重点を置いたオープンソースのビルド自動化ツールです。App Engine には、アプリをビルドして App Engine にデプロイする際に使用できる Gradle プラグインが用意されています。このガイドのコードサンプルでは、Gradle バージョン 8 を使用します。
このコードサンプルは、App Engine Gradle タスク、Maven リポジトリ、App Engine Gradle プラグイン、Java 8 の依存関係を追加するようにbuild.gradle
ファイルを構成する方法を示しています。Java バージョン 11 以降の場合は、Java ランタイムで新しいバージョンの使用についての詳細をご覧ください。始める前に
まだ行っていない場合は、このガイドの手順に沿って gcloud CLI をダウンロードし、Google Cloud プロジェクトを作成して App Engine アプリを初期化します。
gcloud CLI
app-engine-java
コンポーネントをインストールします。gcloud components install app-engine-java
新しい Gradle プロジェクトを作成する
シェルを使用して、新しい Gradle プロジェクトを一から作成できます。または、プラグインを試してみるため、Hello World プロジェクトをダウンロードし、ローカルで実行してデプロイすることもできます。
新しいプロジェクトを作成するには:
新しいディレクトリを作成し、そのディレクトリに移動します。
新しいプロジェクトを初期化するには:
gradle init
を実行します。gradle init --type java-application
以下の質問に回答してください。
- ターゲット Java バージョンを入力します(最小: 7、デフォルト: 21): 21
- アプリケーション構造を選択: 1(単一アプリケーション プロジェクトの場合)
- ビルド スクリプト DSL を選択: 2(Groovy の場合)
- テスト フレームワークを選択: 1(JUnit 4 の場合)
- 新しい API と動作を使用してビルドを生成: いいえ
WEB-INF
フォルダを作成します。mkdir -p app/src/main/webapp/WEB-INF
appengine
フォルダを作成します。mkdir -p app/src/main/appengine
gradle init
によって生成されたスタブファイルを削除します。rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
次のコードを
app/build.gradle
ファイルに追加します。これにより、App Engine Gradle タスク、Maven リポジトリ、App Engine Gradle プラグイン、依存関係、タスク構成が追加されます。次のファイルをプロジェクトに追加する必要があります。テキスト エディタまたは統合開発環境(IDE)を使用して追加してください。
app/src/main/appengine/app.yaml
app/src/main/webapp/WEB-INF/web.xml
(アプリで Servlet 3.1 アノテーションを使用する場合を除く)- app/src/main/docker/Dockerfile(カスタム ランタイムの場合は任意)
- Java クラス
- Java テストクラス
Java App Engine プロジェクトの概要については、開発環境を設定するをご覧ください。
Hello World アプリをダウンロードする
Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
あるいは、zip 形式のサンプルをダウンロードして、ファイルを抽出することもできます。
サンプルコードが入っているディレクトリに移動します。
cd java-docs-samples/flexible/java-8/helloworld
開発用サーバーを使用してアプリケーションをテストする
ローカルでの実行中にプロジェクトから Google リソースにアクセスするには、次のコマンドを実行してアプリケーションのデフォルト認証情報を設定します。
gcloud auth application-default login
アプリケーション ディレクトリのルートに移動します。
開発フェーズでは、アプリケーションをいつでも開発用サーバーで実行およびテストできます。これには、次のコマンドで Gradle を起動します。
gradle jettyRun
Gradle をインストールせずに実行することもできます。その場合は、Gradle ラッパーを使用します。
サーバーが起動するまで待ちます。アプリケーションが実行された状態でサーバーが起動し、次のようなメッセージが表示されます。
:prepareInplaceWebAppFolder :createInplaceWebAppFolder :compileJava :processResources UP-TO-DATE :classes :prepareInplaceWebAppClasses :prepareInplaceWebApp :jettyRun 17:40:05 INFO Jetty 9.2.15.v20160210 started and listening on port 8080 17:40:05 INFO runs at: 17:40:05 INFO http://localhost:8080/
アプリが
http://localhost:8080
で実行されていることを確認します。
Gretty プラグインの詳細については、Gretty の構成と Gretty のタスクをご覧ください。
アプリケーションをデプロイする
アプリケーションをデプロイするには:
gradle appengineDeploy
appengineDeploy
タスクと他のすべての Gradle タスクには、使用できるプロパティが関連付けられています。すべてのタスクとプロパティのリストについては、App Engine Gradle のタスクとプロパティをご覧ください。
Gradle ラッパーを使用する
Gradle には、インストールせずに、必要なバージョンの Gradle をダウンロードして実行するためのメカニズムがあります。
Linux / macOS
サンプルコードのディレクトリに移動します。
gradlew を実行します。
./gradlew jettyRun
Windows
サンプルコードのディレクトリに移動します。
gradlew を実行します。
./gradlew.bat jettyRun
Gradle に関するその他の情報については、App Engine Gradle のタスクとプロパティをご覧ください。
次のステップ
- GitHub でプラグインのコードを調べて問題を報告します。
- タスクのプロパティを指定する方法を App Engine Gradle のタスクとプロパティで確認します。