App Engine Maven 外掛程式目標與參數

將 App Engine Maven 外掛程式新增至專案之後,您就可以使用下列 App Engine 專用的 Maven 目標:

目標 說明
appengine:deploy 測試應用程式並部署至 App Engine。
appengine:deployCron cron.yaml 設定檔部署至 App Engine。
appengine:deployDispatch dispatch.yaml 設定檔部署至 App Engine。
appengine:deployDos dos.yaml 設定檔部署至 App Engine。
appengine:deployIndex index.yaml 設定檔部署至 App Engine。
appengine:deployQueue queue.yaml 設定檔部署至 App Engine。
appengine:help 在 App Engine Maven 外掛程式上顯示說明資訊。
appengine:stage 產生用於部署的應用程式版本目錄。

如要進一步瞭解如何設定及使用 Maven,請參閱使用 Maven 的相關說明。

使用參數

您可以在 pom.xml 檔案中指定每個目標的相關參數。例如:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.0.0</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkPath>/usr/foo/path/to/cloudsdk</cloudSdkPath>
     </configuration>
  </plugin>
</plugins>

您也可在指令列中,於 -D[USER_PROPERTY]=[PARAMETER_VALUE] 模式之後定義設定參數。

例如,如要指定暫存應用程式的目錄:

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

有關每個目標可用的參數清單,請參閱以下各小節。

appengine:deploy

測試應用程式並部署至 App Engine。

您可以使用下列參數,其中部分參數可對應至 gcloud app deploy 指令列標記gcloud app services 指令列標記

參數 說明 使用者屬性
appEngineDirectory 包含 app.yaml 與其他支援的 App Engine 設定檔的目錄。預設值是 ${basedir}/src/main/appengine app.stage.appEngineDirectory
artifact 部署 JAR 或 WAR 封存的位置。預設值是 ${project.build.directory}/${project.build.finalName}.${project.packaging} app.stage.artifact
bucket Cloud Storage 值區,用來暫存與部署作業相關聯的檔案。如果未指定這個引數,系統會使用應用程式的預設值區。 app.deploy.bucket
cloudSdkPath 用於設定 Cloud SDK 位置的選用參數。系統預設會自動從「路徑」或標準安裝位置取得。 cloudSdkPath
deployables 您想部署之服務或設定的 YAML 檔案。預設為暫存目錄中的 app.yaml 檔案。如果找不到這個檔案,會嘗試在暫存目錄中自動產生必要的設定檔 (例如 app.yaml)。 app.deploy.deployables
dockerDirectory 包含 Dockerfile 與其他 Docker 資源的目錄。預設值是 ${basedir}/src/main/docker/ app.stage.dockerDirectory
imageUrl 使用特定的 Docker 映像檔進行部署。ImageUrl 必須是有效的 Container Registry 名稱,例如 gcr.io/foo,其中 foo 是映像檔的名稱。 app.deploy.imageUrl
project 要用於這個叫用的 Google Cloud Platform 專案名稱。 預設為初始化 `gcloud` 時選取的目前專案。 app.deploy.project
promote 升級部署版本,以接收所有流量。預設值是 True app.deploy.promote
server 要連線的 App Engine 伺服器。您通常不需要變更這個值。 app.deploy.server
stagingDirectory 必要參數。要暫存應用程式的目標目錄。預設值是 ${project.build.directory}/appengine-staging app.stage.stagingDirectory
stopPreviousVersion 部署接收所有流量的新版本時,停止之前執行的版本。 app.deploy.stopPreviousVersion
version 將由此部署建立或取代的應用程式版本。如果您未指定版本,系統會為您產生一個。 app.deploy.version

appengine:help

顯示有關 App Engine Maven 外掛程式的說明資訊。如要顯示參數詳細資料,請呼叫:

mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]

您可以使用下列參數:

參數 說明 使用者屬性
detail 若為 true,則顯示每個目標的所有可設定屬性。預設值是 False detail
goal 要顯示說明的目標名稱。若未指定,將會顯示所有目標。 goal
indentSize 每個縮排層級的空格數。此數應為正數。 預設值是 2 indentSize
lineLength 顯示行的長度上限。應為正數。 預設值是 80 lineLength

appengine:stage

產生用於部署的應用程式版本目錄。

您可以使用下列參數:

參數 說明 使用者屬性
appEngineDirectory 包含 app.yaml 與其他支援的 App Engine 設定檔的目錄。預設值是 ${basedir}/src/main/appengine app.stage.appEngineDirectory
artifact 部署 JAR 或 WAR 封存的位置。預設值是 ${project.build.directory}/${project.build.finalName}.${project.packaging} app.stage.artifact
cloudSdkPath 用於設定 Cloud SDK 位置的選用參數。 cloudSdkPath
dockerDirectory 包含 Dockerfile 與其他 Docker 資源的目錄。預設值是 ${basedir}/src/main/docker/${basedir}/src/main/docker/ app.stage.dockerDirectory
stagingDirectory 必要參數。要暫存應用程式的目標目錄。預設值為 ${project.build.directory}/appengine-staging app.stage.stagingDirectory