Gradle と App Engine プラグインを使用する

ビルド、テスト、デプロイを自動化する宣言型ビルドシステムである Gradle を使用して、App Engine フレキシブル環境のプロジェクトの管理方法を学びましょう。

始める前に

次の前提条件をインストールし、構成します。

GCP プロジェクトの設定と検証

次の手順に沿って操作して GCP プロジェクトをセットアップし、Cloud SDK をインストールする必要があります。

  1. Google Cloud Platform Console を使用して、GCP プロジェクトを作成して設定します。

    App Engine に移動

    1. GCP プロジェクトを選択するか、新規作成します。
    2. 表示される指示に沿って、App Engine アプリケーションが存在すること、および課金が有効になっていることを確認します。
      1. プロジェクト用の App Engine アプリケーションを作成する必要がある場合は、App Engine アプリケーションを配置するリージョンを選択するように指示されます。
      2. プロジェクトの課金を有効にする必要がある場合は、新しい課金アカウントを作成するか、既存のアカウントを選択するように指示されます。
    3. プロジェクトで App Engine アプリケーションが作成され、課金が有効になったら、ダッシュボードが開きます。
  2. Cloud SDK をインストールし、初期化します

    gcloud ツールがすでにインストールされていて、初期化時の ID とは異なる GCP プロジェクト ID を使用するように構成する場合は、Cloud SDK 構成の管理をご覧ください。

  3. Java 用の App Engine コンポーネントをインストールします。

    gcloud components install app-engine-java
    

新しい Gradle プロジェクトを作成する

シェルを使用して、新しい Gradle プロジェクトを一から作成できます。または、プラグインを試してみるため、Hello World プロジェクトをダウンロードし、ローカルで実行してデプロイすることもできます。

新しいプロジェクトを作成するには:

  1. 新しいディレクトリを作成し、そのディレクトリに移動します。

  2. 次のコマンドを実行して新しいプロジェクトを初期化します。

    1. gradle init を実行します。

      gradle init --type java-library
      
    2. WEB-INF フォルダを作成します。

      mkdir -p src/main/webapp/WEB-INF
      
    3. appengine フォルダを作成します。

      mkdir -p src/main/appengine
      
  3. gradle init によって生成されたスタブファイルを削除します。

    rm src/main/java/Library.java src/test/java/LibraryTest.java
    
  4. 次のコードを build.gradle ファイルに追加します。これにより、App Engine Gradle のタスク、Maven のリポジトリ、App Engine Gradle プラグイン、依存関係、タスク構成が追加されます。

    buildscript {      // Configuration for building
      repositories {
        jcenter()      // Bintray's repository - a fast Maven Central mirror & more
        mavenCentral()
      }
      dependencies {
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.+' // Latest 1.x.x release
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    repositories {   // repositories for JARs you access in your code
      maven {
        url 'https://maven-central.storage.googleapis.com'             // Google's mirror of Maven Central
      }
    
    //maven {
    //  url 'https://oss.sonatype.org/content/repositories/snapshots' // SNAPSHOT repository if needed
    //}
    
      jcenter()
      mavenCentral()
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    apply plugin: 'com.google.cloud.tools.appengine'
    
    dependencies {
      providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
      providedCompile 'com.google.appengine:appengine:+'
    // Add your dependencies here.
    
    }
    
    gretty {
        httpPort = 8080
        contextPath = '/'
        servletContainer = 'jetty9'  // What App Engine Flexible uses
    }
    
    appengine {
    
      deploy {   // deploy configuration
        stopPreviousVersion = true  // default - stop the current version
        promote = true              // default - & make this the current version
      }
    
    }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
  5. 次のファイルをプロジェクトに追加する必要があります。テキスト エディタまたは統合開発環境(IDE)を使用して追加してください。

Java App Engine プロジェクトの概要については、クイックスタートをご覧ください。

Hello World アプリのダウンロード

  1. Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    

    あるいは、zip 形式のサンプルをダウンロードして、ファイルを抽出することもできます。

  2. サンプルコードが含まれているディレクトリに移動します。

    cd java-docs-samples/appengine/helloworld-new-plugins
    

開発用サーバーを使用してアプリケーションをテストする

  1. ローカルでの実行中にプロジェクトから Google リソースにアクセスするには、次のコマンドを実行してアプリケーションのデフォルトを設定します。

    gcloud auth application-default login
    
  2. アプリケーション ディレクトリのルートに移動します。

  3. 開発フェーズでは、アプリケーションをいつでも開発用サーバーで実行およびテストできます。これには、次のコマンドで Gradle を起動します。

    gradle jettyRun
    

    Gradle をインストールせずに実行することもできます。その場合は、Gradle ラッパーを使用します。

  4. サーバーが起動するまで待ちます。アプリケーションが実行された状態でサーバーが起動し、次のようなメッセージが表示されます。

    :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/
    
  5. アプリが http://localhost:8080 で実行されていることを確認します。

Gretty プラグインの詳細については、Gretty の構成Gretty のタスクをご覧ください。

アプリケーションをデプロイする

アプリケーションをデプロイするには、次のコマンドを実行します。

gradle appengineDeploy

appengineDeploy タスクと、Gradle のその他すべてのタスクには、デベロッパーが使用できるプロパティが関連付けられています。すべてのタスクとプロパティのリストについては、App Engine Gradle のタスクとプロパティをご覧ください。

Gradle ラッパーを使用する

Gradle には、インストールせずに、必要なバージョンの Gradle をダウンロードして実行するためのメカニズムがあります。

Linux / macOS

  1. サンプルコードのディレクトリに移動します。

  2. gradlew を実行します。

    ./gradlew jettyRun
    

Windows

  1. サンプルコードのディレクトリに移動します。

  2. gradlew を実行します。

    ./gradlew.bat jettyRun
    

Gradle に関するその他の情報については、App Engine Gradle のタスクとプロパティをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java の App Engine フレキシブル環境に関するドキュメント