在將以 gcloud CLI 為基礎的 App Engine Maven 外掛程式新增至專案之後,您就可以使用下列 App Engine 專用的 Maven 目標:
| 目標 | 說明 |
|---|---|
appengine:cloudSdkLogin |
設定帳戶的通用 gcloud CLI 狀態。 |
appengine:deploy |
將應用程式暫存及部署至 App Engine。 |
appengine:deployAll |
將應用程式及其所有有效的 yaml 設定同時暫存及部署至 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:run |
這個指令可以執行 App Engine 開發伺服器。當伺服器正在執行時,會持續檢查確認 appengine-web.xml 是否已變更。如已變更,伺服器會重新載入應用程式。您無須因為 appengine-web.xml 有所變更而停止並重新啟動應用程式。舊版服務套裝組合支援此目標。 |
appengine:stage |
針對部署產生應用程式目錄。 |
appengine:start |
開始非同步執行 App Engine 開發伺服器,然後返回指令列。當這個目標執行時,除了 Maven 會持續處理目標,並在伺服器啟動並執行後結束以外,所有行為都與 run 目標相同。舊版服務套裝組合支援此目標。 |
appengine:stop |
停止執行中的 App Engine 網路開發伺服器。舊版服務套裝組合支援此目標。 |
如要進一步瞭解如何設定及使用 Maven,請參閱「使用 Maven」一文。
使用參數
您可以在 pom.xml 檔案中指定每個目標的相關參數。例如:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
<cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
</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 |
選用參數,可設定 Google Cloud CLI 的位置。預設會自動從「路徑」或標準安裝位置取得。 | cloudSdkPath |
deployables |
您要部署之服務或設定的 YAML 檔案。預設為暫存目錄中的 app.yaml 檔案。如果找不到這個檔案,會嘗試在暫存目錄中自動產生必要的設定檔 (例如 app.yaml)。 |
app.deploy.deployables |
dockerDirectory |
包含 Dockerfile 與其他 Docker 資源的目錄。預設值為 ${basedir}/src/main/docker/。 |
app.stage.dockerDirectory |
imageUrl |
使用特定的 Docker 映像檔進行部署。ImageUrl 必須是有效的 Artifact Registry 名稱,例如 docker.pkg.dev/foo,其中 foo 是映像檔的名稱。 |
app.deploy.imageUrl |
projectId |
要用於這個叫用的 Google Cloud 專案名稱。預設為初始化 gcloud 時選取的目前專案。 |
app.deploy.projectId |
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 |
用於設定 gcloud CLI 位置的選用參數。 | cloudSdkPath |
dockerDirectory |
包含 Dockerfile 與其他 Docker 資源的目錄。預設值為 ${basedir}/src/main/docker/${basedir}/src/main/docker/。 |
app.stage.dockerDirectory |
stagingDirectory |
這是必要旗標,用來暫存應用程式的目標目錄。預設值為 ${project.build.directory}/appengine-staging |
app.stage.stagingDirectory |