有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    此功能不存在,但有一种方法可以实现所需的输出

    YAML is a standard format with many libraries for both reading and writing. It is also a text file, so a simple solution could simply copy a template and replace any placeholder the you want with the appropriate value.

    话虽如此,我尝试创建一个示例应用程序,将我定义的值注入maven配置文件

    1. pom.xml中的build下添加了您的“资源”代码片段后,我在我的pom.xml文件中添加了profiles
    <profiles>
        <profile>
            <id>Test_ID</id>
            <properties>
                <appengine.vpc-access-connector>
                    projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
                </appengine.vpc-access-connector>
            </properties>
        </profile>
    </profiles> 
    
    1. 在我的“/src/main/appengine/app.yaml”下的app.yaml文件下,我做了以下工作:
    vpc_access_connector: 
      name: "${appengine.vpc-access-connector}"
      egress_setting: all-traffic
    
    1. 最后,我尝试使用Maven Filtering命令运行它:$ mvn resources:resources -P Test_ID,并在“/target/classes/app.yaml”下获得一个新的app.yaml文件,该文件具有以下输出:
    vpc_access_connector: 
      name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME"
      egress_setting: all-traffic
    

    对于生成的app.yaml文件deploying,运行文档中的以下命令:gcloud app deploy appyaml=target/classes/app.yaml

    还有一个可以进一步了解你的migrating options to Java App Engine 11的指南