GAE:由于 appcfg 失去支持,无法再更新我的 Gaelyk 项目
GAE: No longer able to update my Gaelyk project due to appcfg losing support
最近尝试更新我的 Gaelyk 项目(是的,它很旧,但运行良好,我仍在使用它),但 Google App Engine 将不再接受更新。返回的错误消息是“不再支持使用 appcfg 的部署。请参阅 https://cloud.google.com/appengine/docs/deprecations"。问题是,我从未使用 appcfg 部署我的应用程序;我使用 Gaelyk 和 Gradle。但显然 Gaelyk 必须使用幕后的 appcfg。
我确实下载了替换 Google Cloud SDK,但这个新工具与 Gaelyk 和 Gradle 的工作方式完全不同。我可以做些什么来让 Gaelyk 继续工作吗?或者 Gaelyk 刚刚死了,我需要重写我的应用程序(比如 Node.js 或其他而不是 Groovy)。
这会很难,但我会尽力帮助你。我认为您可以尝试以某种方式将其迁移到 GAE 的 app.yaml
配置。
我不清楚项目中使用了哪些插件。来自 Gaelyk temple project I can see that it's using appengine-geb
which, according to the documentation,在幕后,正在使用 gradle-appengine-plugin
(此文档上有错误的 link,但下面是正确的)。
在 gradle-appengine-plugin
的 github 上,我发现了以下内容。
- 有备注:
NOTE: All App Engine users are encouraged to transition to the new
gradle plugin for their projects.
- 而在FAQ部分有以下信息:
How do I deploy with gcloud?
If you're using gcloud to deploy your application, the newest version of app deploy > doesn't support war
directories, you will need to provide it with an app.yaml OR you can
use the appengineStage task to create a directory that is deployable
in /build/staged-app
$ ./gradlew appengineStage
$ gcloud app deploy build/staged-app/app.yaml --project [app id]
--version [some version]
NOTES:
- You must explicitly define all config files your want to upload
(cron.yaml, etc)
- This does not work with EAR formatted projects.
我认为最好的选择是迁移到新的 appenine 插件,或者如果不可能,请尝试使用 gcloud app deploy
命令手动创建配置文件(至少 app.yaml
)。对于这次迁移,我可以为您提供 document.
我希望你能以某种方式管理...
我可以确认 Gaelyk Groups 网站上的 Serge's answer 有效;他想出的相同程序也对我有用。总结:
- 运行 gradlew appengine运行 as 运行 以前使用 Gaelyk。
- 将 build\exploded-app\WEB-INF\lib 文件夹中的所有 jar 文件复制到 \src\main\webapp\web-inf\lib 文件夹中(对我来说,新的lib 文件夹以前不存在)。
- 要部署,请使用所需的新 gcloud 工具,而不是 运行ning gradlew appengineUpdate(现在失败),而是 运行
gcloud app deploy appengine-web.xml 其中 XML 文件可以在您的 webapp/WEB-INF 目录中找到。我导航到该目录以 运行 gcloud 命令,但如果您的工作目录在其他地方,您可以在那里使用相对路径。 (有许多与 gcloud app deploy 命令关联的可选标志,但我不需要它们中的任何一个。)
- Serge 需要使用 these instructions 将 datastore-indexes.xml 转换为 index.yaml 和 运行 gcloud app deploy index.yaml,但是,我不需要这样做,因为我没有数据存储。
最近尝试更新我的 Gaelyk 项目(是的,它很旧,但运行良好,我仍在使用它),但 Google App Engine 将不再接受更新。返回的错误消息是“不再支持使用 appcfg 的部署。请参阅 https://cloud.google.com/appengine/docs/deprecations"。问题是,我从未使用 appcfg 部署我的应用程序;我使用 Gaelyk 和 Gradle。但显然 Gaelyk 必须使用幕后的 appcfg。
我确实下载了替换 Google Cloud SDK,但这个新工具与 Gaelyk 和 Gradle 的工作方式完全不同。我可以做些什么来让 Gaelyk 继续工作吗?或者 Gaelyk 刚刚死了,我需要重写我的应用程序(比如 Node.js 或其他而不是 Groovy)。
这会很难,但我会尽力帮助你。我认为您可以尝试以某种方式将其迁移到 GAE 的 app.yaml
配置。
我不清楚项目中使用了哪些插件。来自 Gaelyk temple project I can see that it's using appengine-geb
which, according to the documentation,在幕后,正在使用 gradle-appengine-plugin
(此文档上有错误的 link,但下面是正确的)。
在 gradle-appengine-plugin
的 github 上,我发现了以下内容。
- 有备注:
NOTE: All App Engine users are encouraged to transition to the new gradle plugin for their projects.
- 而在FAQ部分有以下信息:
How do I deploy with gcloud?
If you're using gcloud to deploy your application, the newest version of app deploy > doesn't support war directories, you will need to provide it with an app.yaml OR you can use the appengineStage task to create a directory that is deployable in /build/staged-app
$ ./gradlew appengineStage
$ gcloud app deploy build/staged-app/app.yaml --project [app id]
--version [some version]
NOTES:
- You must explicitly define all config files your want to upload (cron.yaml, etc)
- This does not work with EAR formatted projects.
我认为最好的选择是迁移到新的 appenine 插件,或者如果不可能,请尝试使用 gcloud app deploy
命令手动创建配置文件(至少 app.yaml
)。对于这次迁移,我可以为您提供 document.
我希望你能以某种方式管理...
我可以确认 Gaelyk Groups 网站上的 Serge's answer 有效;他想出的相同程序也对我有用。总结:
- 运行 gradlew appengine运行 as 运行 以前使用 Gaelyk。
- 将 build\exploded-app\WEB-INF\lib 文件夹中的所有 jar 文件复制到 \src\main\webapp\web-inf\lib 文件夹中(对我来说,新的lib 文件夹以前不存在)。
- 要部署,请使用所需的新 gcloud 工具,而不是 运行ning gradlew appengineUpdate(现在失败),而是 运行 gcloud app deploy appengine-web.xml 其中 XML 文件可以在您的 webapp/WEB-INF 目录中找到。我导航到该目录以 运行 gcloud 命令,但如果您的工作目录在其他地方,您可以在那里使用相对路径。 (有许多与 gcloud app deploy 命令关联的可选标志,但我不需要它们中的任何一个。)
- Serge 需要使用 these instructions 将 datastore-indexes.xml 转换为 index.yaml 和 运行 gcloud app deploy index.yaml,但是,我不需要这样做,因为我没有数据存储。