【问题标题】:Generate property file as per environment by passing multiple environment通过传递多个环境根据环境生成属性文件
【发布时间】:2014-03-04 15:17:51
【问题描述】:

我有一种情况,我需要通过传递环境来创建多个配置属性文件。

即:我有 dev、prod、qa、int 等环境,但我想一次性为 int 和 dev 创建 jar

我的第一个问题是:“在 Maven 中有什么方法可以传递多个环境值”?

如果可能的话,我该如何设置我的 pom.xml 以接受多个 env 值?

【问题讨论】:

  • 您是如何管理您的环境的?个人资料?
  • 你真的不想这样做。你应该有一个 jar 文件,它可以通过环境进行升级而不做任何更改,否则你可能会在 qa 测试后出错并将错误的东西放到生产环境中。最佳实践是在 dev 中测试工件,在 int 中测试相同的工件,如果它通过了,然后在 qa 中对其进行测试,然后在 pre-prod 中进行测试,然后将其推送到 prod - 相同的工件。属性,如 db 连接字符串和凭据,应保存在外部文件或 ldap 中。

标签: java maven environment-variables pom.xml


【解决方案1】:

您对“传递多个环境值”的含义不太清楚。

如果您想根据执行环境激活一组属性,您可以使用 maven 配置文件。

这是两个配置文件的示例,您可以将其添加到 pom.xml。

  <profiles>
    <profile>
        <id>prod</id>
        <properties>
            <value1>a</value1>
            <value2>b</value2>
        </properties>
    </profile>
    <profile>
        <id>qa</id>
        <properties>
            <value1>x</value1>
            <value2>y</value2>
        </properties>
    </profile>
</profiles>

然后,您可以通过使用参数“-Pprod”调用 maven 来激活配置文件“prod”。

【讨论】:

  • 当我阅读问题时,OP 希望能够使用一个命令创建两个文件。配置文件不适用于此。
  • 配置文件可能仍然有用,因为您可以为相关插件配置不同的执行块,然后一次激活多个配置文件。但我想我们需要更多地了解他的环境。
【解决方案2】:

我担心您无法在一个构建中触发 2 个不同的打包,其中包含每个配置文件过滤的资源。

如果您想一次激活 2 个配置文件,您可以使用 -P 指定它们或根据相同的属性触发激活(参见 Maven: Only execute plugin when a command line flag is present

如果我正确理解您的问题,我建议将集成工件的构建委托给持续集成服务器,该服务器将使用专用配置文件触发适当的资源过滤,并将开发配置文件设置为每日的默认配置文件开发人员构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多