0

我試圖執行一個Maven目標,它帶有一個帶多個值(值列表)的參數。我怎樣才能做到這一點?mvn appengine的多值參數:部署

gcloud這可以用gcloud app deploy --quiet --project $(PROJECT) -v $(VERSION) app.yaml backend.yaml cron.yaml index.yaml queue.yaml

做,但我們使用Maven。

我們試圖

mvn appengine:deploy -Dapp.deploy.deployables=app.yaml cron.yml queue.yaml 

但是,這是行不通的。實際上,只需要部署這些命令即可。

mvn appengine:deploy 
mvn appengine:deployCron 
mvn appengine:deployDispatch 
mvn appengine:deployIndex 
mvn appengine:deployQueue 

這怎麼能在Maven的一個命令中完成?

回答

2

-Dapp.deploy.deployables的值應該是逗號分隔。但是,使用此標誌時,app.yaml需要指向階段性位置,因此如果要將其與其他配置文件一起部署,您可能需要預先使用mvn appengine:stage預置應用程序。

$ mvn appengine:stage 
$ mvn appengine:deploy -Dapp.deploy.deployables=src/main/appengine/queue.yaml,target/appengine-staging/app.yaml 

在最後一個命令的輸出,你將看到類似

INFO: submitting command: <...>/bin/gcloud app deploy <...>/src/main/appengine/queue.yaml <...>/target/appengine-staging/app.yaml 
[INFO] GCLOUD: Services to deploy: 
[INFO] GCLOUD: 
[INFO] GCLOUD: descriptor:  [<...>/target/appengine-staging/app.yaml] 
[INFO] GCLOUD: source:   [<...>/target/appengine-staging] 
[INFO] GCLOUD: target project: [<...>] 
[INFO] GCLOUD: target service: [default] 
[INFO] GCLOUD: target version: [20170807t115019] 
[INFO] GCLOUD: target url:  [https://<...>] 
[INFO] GCLOUD: 
[INFO] GCLOUD: 
[INFO] GCLOUD: Configurations to update: 
[INFO] GCLOUD: 
[INFO] GCLOUD: descriptor:  [<...>/src/main/appengine/queue.yaml] 
[INFO] GCLOUD: type:   [task queues] 
[INFO] GCLOUD: target project: [<...>] 
[INFO] GCLOUD: 
[INFO] GCLOUD: 
[INFO] GCLOUD: If this is your first deployment, this may take a while... 
[INFO] GCLOUD: ....done. 
[INFO] GCLOUD: 
[INFO] GCLOUD: Beginning deployment of service [default]... 
[INFO] GCLOUD: Building and pushing image for service [default]