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]