【问题标题】:How to deploy multiple Java services to the same GCP project如何将多个 Java 服务部署到同一个 GCP 项目
【发布时间】:2016-10-19 08:36:40
【问题描述】:

如何将多个 Java services 部署到同一个 GCP 项目?

在appengine-web.xml中指定项目ID的文档中有几处提到[1];

<application> 元素包含应用程序的项目 ID。这是您在 Google Cloud Platform Console 中创建项目时注册的项目 ID。

但它被gcloudmvn 忽略[1] [2](强调我的):

gcloud 和 gcloud 工具(Intellij、Gradle、和新的 maven 插件忽略此元素


请注意,虽然每个 appengine-web.xml 文件都必须包含 <application> 标记,但您提供的名称将被忽略。应用程序的名称取自 appengine-application.xml 文件中的 <application> 标记。

最后一句话似乎适用于 Java 8 / Jetty 9 运行时。

java-gae-quickstart 项目没有 appengine-application.xml 文件。

[1] - appengine-web.xml Reference

[2] - Organizing xml Configuration Files

【问题讨论】:

  • 那么您的问题到底是什么?顺便说一句,您还可以通过 maven 属性设置 applicationId:stackoverflow.com/questions/40071171/…
  • @TomTasche 问题在帖子的标题和第一行。不过,我还没有尝试使用 Maven 属性设置任何内容。

标签: java google-app-engine google-cloud-platform


【解决方案1】:

这是一个使用模块的示例项目:https://github.com/GoogleCloudPlatform/appengine-modules-sample-java

注意事项:

  • 有一个“ear”模块,它不包含代码,但有一个application.xml。该文件定义了您项目的模块。
  • 重要的是要有一个没有定义模块名称(在appengine-web.xml 中)或模块名称为“默认”的模块(“ear”除外)。这也是用于配置数据存储索引、cron 等的模块。
  • 为了部署你所有的模块,你去你的耳朵模块并执行mvn appengine:update

【讨论】:

  • Java 8 不支持此解决方案。当您的应用使用 Java 8 时,GAE 不支持 EAR 文件。
猜你喜欢
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
  • 1970-01-01
相关资源
最近更新 更多