はじめに: 開発環境の設定

アプリケーション開発と Google App Engine スタンダードへのデプロイのためのビルド環境の設定方法について説明します。サポートされている Java 開発環境とビルド環境は、IntelliJ IDEA、Eclipse、Apache Maven、Gradle です。

このガイドでは次の方法について説明します。

  • Google Cloud SDK のコマンドライン ツールをインストールする。
  • Eclipse、IntelliJ、Gradle、Maven 用の App Engine プラグインをインストールして構成する。
  • 新しい App Engine プロジェクトを作成する。
  • Cloud Build に権限を付与して、アプリのビルドとデプロイを有効にします。

必要な SDK のインストール

  1. Java SE 8 SDK をまだインストールしていない場合は、Java SE 8 Development Kit(JDK)をインストールします。

  2. Google Cloud SDK の最新バージョンをインストールします。

    Google Cloud SDK をインストールする

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

    gcloud components install app-engine-java
    
  4. 自分のユーザー アカウントを承認します。

    gcloud auth application-default login
    
  5. 必要に応じて、サービス アカウントを作成するには、gcloud auth activate-service-account --key-file=your_key.json を実行します。 詳細については、Cloud SDK ツールの承認をご覧ください。

開発環境の構成

Eclipse

始める前に

  1. Eclipse IDE for Java EE Developers バージョン 4.7 以降をインストールします。

    Eclipse のダウンロード

  2. Google Plugin for Eclipse がインストール済みである場合は、GPE からの移行の手順を完了します。

プラグインをインストールする

  1. 実行中の Eclipse ワークスペース内に次のインストール ボタンをドラッグします。

    実行中の Eclipse ワークスペースにドラッグします。

    または Eclipse 内から、[Help] > [Eclipse Marketplace] を選択し、Google Cloud Tools for Eclipse を検索します。

  2. プロンプトが表示されたら Eclipse を再起動します。

IntelliJ

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Ensure that the following software is installed on your local system:

プラグインをインストールする

  1. Open IntelliJ IDEA (or any supported JetBrains IDE).
  2. From your plugins marketplace (File > Settings > Plugins or for Mac OS X, IntelliJ IDEA > Preferences > Plugins), search for the 'Cloud Code' plugin and install it.

    You may be prompted to restart your IDE to activate the plugin.

  3. Configure the project JDK:

    1. Open File > Project Structure.
    2. Choose Project Settings > Project.
    3. If the Project SDK is missing, click New... and choose a JDK.

Gradle

  1. Gradle v3.4.1 以降をインストールする

  2. git をインストールする

Maven

  1. Maven ウェブサイトから Maven 3.5 をダウンロードします

  2. ローカルマシンに Maven 3.5 をインストールします

新しい App Engine プロジェクトの作成

Eclipse

  1. Google Cloud Platform ツールバー ボタン をクリックします。

  2. [Create New Project] > [Google App Engine Standard Java Project] を選択します。

  3. プロジェクト名を入力し、(オプションで)Java パッケージも入力します。

  4. Maven ベースの App Engine プロジェクトを作成するには、[Create as Maven Project] をオンにし、Maven グループ IDアーティファクト ID を入力します。

  5. プロジェクトで必要なライブラリ(App Engine APIGoogle Cloud EndpointsObjectify)を選択します。

  6. [Finish] をクリックします。

ウィザードによって、ネイティブ Eclipse プロジェクトが簡単なサーブレットで生成されます。これは、IDE から実行し、デプロイすることができます。

IntelliJ

  1. Choose File > New > Project to display the New Project dialog.

  2. Choose Java in the left panel.

  3. In the Additional Libraries and Frameworks section, check the Google App Engine box for your environment.

    New Java project with 'Google App Engine Standard' selected within Additional Libraries and Frameworks.

  4. Select the additional libraries you want to add to the classpath of your application. The Servlet API is selected by default.

  5. Click Next.

  6. Enter a Project name.

  7. Enter a Project location if you do not want to keep the default.

  8. Update the fields in the More Settings section if you do not want to keep the defaults.

  9. Click Finish.

Gradle

  1. 新しいディレクトリを作成します。

  2. 作成したディレクトリで、新しいプロジェクトを初期化します。

    gradle init --type java-library;
    mkdir -p src/main/webapp/WEB-INF;
    rm src/main/java/Library.java src/test/java/LibraryTest.java
    

    Gradle は、最後の rm コマンドで削除された 2 つの空のクラスを持つスケルトン ディレクトリ構造を作成します。

  3. 次のコードを 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:2.2.0' // 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
        projectId = 'GCLOUD_CONFIG' // delegate to project in gcloud config
        version = 'GCLOUD_CONFIG'   // delegate to gcloud to generate a version
      }
    
    }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8

Maven

App Engine アプリを作成するには:

  1. 新しいディレクトリを作成します。

  2. 作成したディレクトリで、新しいプロジェクトを初期化します。

     mvn archetype:generate -Dappengine-version=1.9.59 -Djava8=true -DCloudSDK_Tooling=true -Dapplication-id=your-app-id -Dfilter=com.google.appengine.archetypes:
    
    1. -Dappengine-version を App Engine SDK for Java の最新バージョンに設定し、application-id を Cloud プロジェクトの ID に設定します。

    2. Java 8 ランタイムにプロジェクトをデプロイするように -Djava8=true を設定します。

    3. Cloud SDK ツールを使用するように、-DCloudSDK_Tooling=true を設定します。

  3. アーキタイプの選択を求められたら、App Engine スケルトン アーキタイプの値 2 を選択します。これにより、必要なディレクトリ構造とファイルが含まれている空のプロジェクトが作成されます。

  4. バージョンの入力を求められたら、Enter キーを押して、デフォルトである最新バージョンを選択します。

  5. Define value for property 'groupId'」と表示されたら、アプリの名前空間を指定します(com.mycompany.myapp など)。

  6. Define value for property 'artifactId'」と表示されたら、プロジェクト名を指定します(myapp など)。

  7. Define value for property 'version'」と表示されたら、デフォルト値を受け入れます。

  8. Define value for property 'package'」と表示されたら、希望するパッケージ名を指定します(またはデフォルト値を受け入れます)。生成される Java ファイルには、ここで指定するパッケージ名が付けられます。

  9. 選択した内容を確認するよう促されたら、デフォルト値(Y)を受け入れます。

  10. プロジェクトの生成が完了するまで待ってから、新しいプロジェクト ディレクトリ(myapp/ など)に移動します。

  11. Cloud SDK ベースのプラグインをプロジェクトの pom.xml ファイルに追加します。

    <build>
        <plugins>
           [...]
              <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>1.3.1</version>
                <configuration>
                    <project>your-project-ID-goes-here</project>
                    <version>1</version>
                </configuration>
              </plugin>
           [...]
        </plugins>
    </build>
    
  12. プラグイン構成で、ターゲットの Google Cloud Platform プロジェクトの ID およびサービスとバージョンを指定します。

Cloud Build に権限を付与する

アプリをデプロイするときに、App Engine で Cloud Build を使用してアプリをコンテナにビルドし、コンテナをランタイムにデプロイします。Cloud Build にはデフォルトでは Java 8 アプリをデプロイする権限がないため、プロジェクトにアプリをデプロイする権限を Cloud Build に付与する必要があります。

次のステップ

これで開発環境が整ったので、Java アプリケーションの開発と App Engine へのデプロイを開始できます。