【问题标题】:how do i setup my maven pom for different environment builds?如何为不同的环境构建设置我的 maven pom?
【发布时间】:2014-04-09 10:51:22
【问题描述】:

我有 3 个环境:

  1. 本地(开发)
  2. 分期
  3. 生产

每个环境使用不同的属性文件(例如,指定 jdbc 属性)。目前,我的 Maven 项目构建了一个战争文件。有人可以给我一些关于如何修改pom.xml 文件的指导,以便我可以指定不同的构建吗?

例如,如果我需要为 stage 构建 war 文件,我需要对 pom.xml 文件做些什么来实现这一点,以便使用 staging 属性文件(包含在 war 中)?

让我更清楚地了解我的构建。我正在使用 spring mvc,所以我可以切换存在的环境(例如属性文件)。实现的方法是在 web.xml 中设置 context 参数,如下所示。

<context-param>
 <param-name>spring.profiles.active</param-name>
 <param-value>dev</param-value>
</context-param>

所以,基本上,如果我使用 maven 配置文件,我该如何换出这个参数值?

【问题讨论】:

    标签: maven maven-3


    【解决方案1】:

    您必须在 pom.xml 中定义不同的环境配置文件

    <profiles>
      <profile>
        <activation>
          <property>
            <name>environment</name>
            <value>test</value>
          </property>
        </activation>
        ...
      </profile>
    </profiles>
    

    或者像这样给它一个特定的ID/名称

    <profiles>
      <profile>
        <id>profile-1</id>
        ...
      </profile>
    </profiles>
    

    并使用mvn groupId:artifactId:goal -Pprofile-1 运行mvn

    您可以找到更多信息here

    【讨论】:

    • 我认为这是我想要使用配置文件的路径,但文档并没有真正说明如何更改参数值(参见修改后的帖子)或换出文件。这几乎就像我需要一种在 pom.xml 中表达这种逻辑的方法:如果 profile=dev,则设置 spring.profiles.active=dev。
    • 你可以在你的spring配置文件中使用&lt;param-value&gt;${spring.config}&lt;/param-value&gt;并在每个配置文件中定义一个参数&lt;spring.config&gt;[your env]&lt;/spring.config&gt;确保你在maven中将你的spring配置文件作为资源处理,顺便说一句
    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2022-02-03
    • 2018-09-06
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多