关于GCloud的两个Maven插件

摘要:由于 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

区别

根据迁移手册,我们总结一下区别

  1. 授权机制使用 gcloud auth logon
  2. 支持 Flexible,所以旧的插件不支持 Flexible
  3. 自动更新本地开发环境,是 Cloud SDK 更新 flow
  4. 支持部署 App Engine 服务(cron queues dos dispathc)配置,独立于服务主体
  5. 本地服务运行的环境变量配置 appengine-web.xml
  6. 支持多服务,而不需要 EAR 打包

新的 SDK 使用注意点

  1. 需要安装 Cloud SDK
  2. Cloud Endpoint discover doc 不会生成
  3. 新的插件不再使用 appcfg,这样部署的方法就改变了,需要使用 gcloud cli 来完成部署。

appcfg java doc

appcfg

迁移到 gcloud 的方法

appcfg 授权后,会在用户路径下生成一个 .appcfg_oauth2_tokens_java,如果授权后出现权限问题,可以清除该文件重新授权。当然如果使用 gcloud sdk,就不会有这个问题。