Java应用程序引擎11项目的应用程序中的maven变量替换。亚马尔
我们有几个Java应用程序引擎标准项目,我正在Spring Boot上从应用程序引擎8迁移到应用程序引擎11。他们中的许多人在他们的appengine-web.xml
文件中使用vpc-access-connector
,我们在maven war插件期间使用资源过滤注入了该文件。配置应用程序引擎的新方法是使用src/main/appengine/app.yaml
文件和jar而不是war作为工件,但是我无法确定如何在应用程序中进行变量替换。yaml文件。我曾尝试将这一部分包含在maven中,但没有成功:
<resources>
<resource>
<directory>src/main/appengine</directory>
<filtering>true</filtering>
</resource>
</resources>
我需要根据正在运行的maven配置文件注入不同的值。目前,我们在配置文件中的maven属性部分定义了vpc访问连接器值,这些配置文件与我们针对每个部署环境(如测试、ea和prod)的spring配置文件保持一致
这里的解决方案是什么
是否有一些方法可以使用不同的应用程序。yaml文件基于哪个配置文件被调用?(这不是最好的解决方案,因为这意味着大多数文件内容都是静态副本,尽管普通内容可以移动到包含的yaml中。)
或者,是否有一些我无法在线找到的语法允许我设置环境变量或maven属性,并从src/main/appengine/app.yaml
文件中引用它
谢谢你的帮助
汤姆·哈里斯
# 1 楼答案
此功能不存在,但有一种方法可以实现所需的输出
话虽如此,我尝试创建一个示例应用程序,将我定义的值注入maven配置文件
pom.xml
中的build
下添加了您的“资源”代码片段后,我在我的pom.xml
文件中添加了profiles
:app.yaml
文件下,我做了以下工作:$ mvn resources:resources -P Test_ID
,并在“/target/classes/app.yaml”下获得一个新的app.yaml
文件,该文件具有以下输出:对于生成的
app.yaml
文件deploying,运行文档中的以下命令:gcloud app deploy appyaml=target/classes/app.yaml
还有一个可以进一步了解你的migrating options to Java App Engine 11的指南