在Cloud Endpoints Frameworks 2.0 for App Engine中增强端点

我收到了来自GCP的电子邮件,要求将我的项目从Cloud Endpoints 1.0迁移到Cloud Endpoints Frameworks 2.0。

我已按照此处列出的步骤操作: https : //cloud.google.com/appengine/docs/java/endpoints/migrating?authuser = 0

在我之前的build.gradle中,我有这个指令来增强我的端点,它工作正常:

appengine { downloadSdk = true appcfg { oauth2 = true } endpoints { getClientLibsOnBuild = true getDiscoveryDocsOnBuild = true } enhancer { version = "v2" api="jdo" // or "jpa" enhanceOnBuild = true } } 

但是,在迁移和编译之后,我收到以下错误:

错误:(60,0)无法在com.google.cloud.tools.gradle.appengine.core.AppEngineExtension类型的对象上找到参数[build_2dn4fni12bkrsqgsi25gsx3hh $ _run_closure2 $ _closure7 @ 6b02ee9e]的方法增强器()。

如果我删除enhancer部分,我会收到以下错误:

org.datanucleus.metadata.MetaDataManager initialiseFileMetaDataForUse:找到类[…]的元数据,但这个类没有增强!! 请在运行DataNucleus之前增强课程。

那么,新框架中的等效增强是什么? (我使用的是Android Studio 2.3.3)

问题是新的gradle插件没有增强你的jpa / jdo类所需的appengineEnhance任务。

这里有一个解决方法https://stackoverflow.com/a/29279504/3190492

同样值得一提的是,不需要appengine块中的enhancer {...}部分,并且配置应该在上面链接的脚本中完成。

我直接从Google云端支持获得了此响应:

有一些function和工具被排除,目前最新版本的Endpoints v2无法使用。 如果您的应用程序需要以下任何一项,则不建议您迁移。

  • JSON-RPC协议,是旧版iOS客户端所必需的
  • 自动ETags
  • 自动种类字段
  • IDE集成
  • 字段部分响应

同时,以下是v2.0当前不支持的工具:

  • Android Studio支持Cloud Endpoints 1.0
  • 针对Cloud Endpoints 1.0的Android Studio代码validation和快速修复

那么,关于“增强器”方法,您是否检查过这些function是否包含在上述function中? 如果是这样,您要做的唯一方法是检查等效function或再次降级到v1.0。

这不是我希望的答案,但至少在他们正式支持这些function之前,我们不应该迁移到Endpoints Framework v2.0。