使用 Gradle 和 App Engine 外掛程式

瞭解如何使用 Gradle 管理 App Engine 彈性環境專案,這是一套用於自動建構、測試及部署內容的宣告式建構系統。

事前準備

安裝及設定下列必要元件:

設定及驗證 GCP 專案

您必須設定 GCP 專案並安裝 Cloud SDK:

  1. 使用 Google Cloud Platform 主控台建立並設定 GCP 專案:

    前往 App Engine

    1. 選取或建立新的 GCP 專案。
    2. 按照提示確認 App Engine 應用程式是否存在,以及是否已啟用計費功能:
      1. 如果您需要為專案建立 App Engine 應用程式,系統會提示您選取要將 App Engine 應用程式設置在哪個地區
      2. 如果您需要為專案啟用計費功能,系統會提示您建立新帳單帳戶或選取現有帳戶。
    3. 在專案中建立 App Engine 應用程式並啟用計費功能後,系統會開啟「資訊主頁」
  2. 安裝並初始化 Cloud SDK

    如果您已安裝 gcloud 工具,並想將其設為使用某組 GCP 專案 ID,而非工具初始化時使用的 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 的情況下執行 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 彈性環境文件