摘要:由于 GCloud 推出了一个新的 maven,所以目前开发中遇到两个插件总是十分混乱,本文根据官方文档详细介绍两者的不同以及选用的最佳实践。
为了描述方便,我们成为旧的插件 AppEngine 插件,新的为 GCloud 插件。
官方文档总结
首先我们先来看看相关的官方文档
AppEngine 插件
enter description here 该文档包含了插件的 goals 列表
GCloud 插件
Using Apache Maven and the App Engine Plugin (Cloud SDK-based)
App Engine Maven Plugin (Cloud SDK-based) Goals and Parameters
这两个 url
最后一个是 maven
, 另一个是 using-maven
迁移手册
最后给出一个迁移手册
Migrating to the Cloud SDK-based Maven plugin
区别
根据迁移手册,我们总结一下区别
- 授权机制使用
gcloud auth logon
- 支持 Flexible,所以旧的插件不支持 Flexible
- 自动更新本地开发环境,是 Cloud SDK 更新 flow
- 支持部署 App Engine 服务(cron queues dos dispathc)配置,独立于服务主体
- 本地服务运行的环境变量配置 appengine-web.xml
- 支持多服务,而不需要 EAR 打包
新的 SDK 使用注意点
- 需要安装 Cloud SDK
- Cloud Endpoint discover doc 不会生成
- 新的插件不再使用 appcfg,这样部署的方法就改变了,需要使用 gcloud cli 来完成部署。
appcfg java doc
appcfg 授权后,会在用户路径下生成一个 .appcfg_oauth2_tokens_java
,如果授权后出现权限问题,可以清除该文件重新授权。当然如果使用 gcloud sdk,就不会有这个问题。