App Engine Gradle 外掛程式工作與屬性

將 App Engine 外掛程式新增至專案之後,您可以在 App Engine 標準環境中針對應用程式使用下列 App Engine 專屬 Gradle 工作:

工作 說明
tasks 顯示所安裝工作的說明資訊。
appengineCloudSdkLogin 設定帳戶的通用 gcloud CLI 狀態。
appengineDeploy 將應用程式暫存及部署至 App Engine。
appengineDeployAll 將應用程式及其所有有效的 yaml 設定同時暫存及部署至 App Engine。
appengineDeployCron cron.yaml 設定檔暫存及部署至 App Engine。
appengineDeployDispatch dispatch.yaml 設定檔暫存及部署至 App Engine。
appengineDeployDos dos.yaml 設定檔暫存及部署至 App Engine。
appengineDeployIndex index.yaml 設定檔暫存及部署至 App Engine。
appengineDeployQueue queue.yaml 設定檔暫存及部署至 App Engine。
appengineRun 這個指令可以執行 App Engine 開發伺服器。當伺服器正在執行時,會持續檢查確認 appengine-web.xml 是否已變更。如已變更,伺服器會重新載入應用程式。您無須因為 appengine-web.xml 有所變更而停止並重新啟動應用程式。
appengineStage 針對部署產生應用程式目錄。
appengineStart 開始非同步執行 App Engine 開發伺服器,然後返回指令列。當這個目標執行時,除了 Gradle 會持續處理工作,並在伺服器啟動並執行後結束以外,所有行為都與執行目標相同。
appengineStop 停止執行中的 App Engine 網路開發伺服器。
explodeWar 將 WAR 檔案打散到建構目錄中。

如要查看所有工作的清單:

gradle tasks

如要進一步瞭解如何設定及使用 Gradle,請參閱使用 App Engine Gradle 一文。

工作屬性

gradle.build 檔案的內容是用來說明建構的一組規則,其以 Groovy 語言為基礎,採用網域特定語言編寫來說明建構。

每項工作都有如下您可以使用的關聯屬性。您可以使用設定閉包、工作與屬性,在 gradle.build 檔案中指定這些屬性。

在下列範例中:

  • 外掛程式的設定結束函式為 appengine
  • 工作為 run
  • 屬性 port 已設為 8080
appengine {  // App Engine tasks configuration
  run {      // local (dev_appserver) configuration (standard environments only)
    port = 8080                 // default
  }

  deploy {   // deploy configuration
    stopPreviousVersion = true  // default - stop the current version
    promote = true              // default - & make this the current version
  }
}

如果您只需要指定幾個屬性,可以在一行中設定:

  appengine.run.port = 8888

如需適用於每項工作的屬性清單,請參閱以下幾節。

appengineStage

task(stage)

針對部署產生應用程式目錄,appengineStage 會由 appengineDeploy 工作使用。

您可以使用以下屬性:

屬性說明
compileEncoding 編譯 JSP 時使用的字元編碼。僅適用於在 App Engine 標準環境中執行的應用程式。
deleteJsps 編譯後刪除 JSP 來源檔案。僅適用於在 App Engine 標準環境中執行的應用程式。
disableJarJsps 停用新增從 JSP 產生的類別。僅適用於在 App Engine 標準環境中執行的應用程式。
disableUpdateCheck 停用檢查 gcloud CLI 更新的功能。
enableJarClasses WEB-INF/classes content 儲存為 JAR 檔案。僅適用於在 App Engine 標準環境中執行的應用程式。
useMtimeFileWatcher 使用 mtime 輪詢作業來偵測原始碼變更。如果使用分散式檔案系統從遠端電腦修改程式碼,則會很實用。
enableJarSplitting 將大於 10 MB 的 JAR 檔案拆分成較小的片段。僅適用於 App Engine 標準環境。
enableQuickstart 使用 Eclipse Jetty 快速入門導覽課程處理 Servlet 註解。僅適用於 App Engine 標準環境。
jarSplittingExcludes 將符合逗號分隔 SUFFIXES 清單的檔案排除在所有 JAR 檔案之外。僅適用於在 App Engine 標準環境中執行的應用程式。
sourceDirectory 這是必要旗標,已編譯的網路應用程式檔案,或爆炸的 WAR 的位置。這會做為暫存來源使用。僅適用於 App Engine 標準環境。預設值為 build/exploded-${gradle-module-name}
stagingDirectory 這是必要旗標,用來暫存應用程式的目標目錄。預設值為 build/staged-app

appengineRun

task(run)

執行 App Engine 開發網路伺服器。當伺服器正在執行時,會持續檢查確認 appengine-web.xml 是否已變更。若已變更,伺服器會重新載入應用程式。這表示您不需要因為 appengine-web.xml 有所變更而停止並重新啟動應用程式。

您可以使用以下屬性,其中一些屬性對應至本機開發伺服器指令列標記

屬性 說明
environment 傳送至本機開發伺服器的環境變數對應。示例:[key1: "value1", key2: "value2"]
jvmFlags 啟動應用程式執行個體時傳送到 java 指令的其他引數。可以指定不只一次。示例: -Xmx1024m -Xms256m
host 應用程式服務應繫結的主機名稱。預設值為 localhost
port 應用程式服務應繫結的最低通訊埠。預設值為 8080
serverVersion 要啟動的伺服器版本,選項有「1」與「2-alpha」。預設值為「1」。
services 這是必要旗標,所含目錄中包含 WEB-INF/web.xml 之目錄的路徑。預設值為 build/exploded-app
startSuccessTimeout 在背景等待開發應用程式伺服器啟動的秒數 (使用 appengineStart 時)。

appengineDeploy

task(deploy)

將應用程式暫存及部署至 App Engine。

屬性 說明
appEngineDirectory .yaml 設定檔 (cron、inex 等) 的位置,設定的特定部署作業 (appengineDeployCron 等) 將從這個位置部署。若為標準應用程式,您的 .xml 設定檔會在暫存期間轉換為 .yaml,並放在 build/staged-app/WEB-INF/appengine-generated 中。
bucket Cloud Storage 值區,用來暫存與部署作業相關聯的檔案。如果未指定這個引數,系統會使用應用程式的預設值區。
imageUrl 使用特定的 Docker 映像檔進行部署。Docker 網址必須來自其中一個有效的 Google Container Registry 主機名稱。
projectId 要用於這個叫用的 Google Cloud Platform 專案 ID。您必須指定 projectId,或者可以將 GCLOUD_CONFIG 設定為使用在 gcloud 設定狀態下設定的專案。
promote 升級部署版本,以接收所有流量。預設值為 True。
server 要連線的 App Engine 伺服器。您通常不需要變更這個值。
stopPreviousVersion 部署接收所有流量的新版本時,停止先前執行的版本。
version 將由此部署建立或取代的應用程式版本。如果您未指定版本,系統會為您產生一個。

全域屬性

屬性說明
tools.cloudSdkHome 用於設定 gcloud CLI 位置的選用屬性。如未指定此屬性,則外掛程式會自動下載 gcloud CLI。
tools.cloudSdkVersion 用於指定所需 gcloud CLI 版本的選用參數。