【问题标题】:Conditional processing in Maven projectsMaven项目中的条件处理
【发布时间】:2015-12-14 16:08:02
【问题描述】:

我有一些在 Maven 项目中的配置设置,我想保留这些设置以构建到新设置的系统中,但如果配置设置已经存在,则不会触及。我遇到的一个问题是,当我从构建中删除设置时,它也在我进行构建时从目标服务器中删除了设置。

什么是好的替代品?

【问题讨论】:

  • 你能举个例子吗?你在说什么……

标签: maven build conditional


【解决方案1】:

一种可能的解决方案是将新系统的特定设置移动到 Maven profile 中,并仅根据环境变量或文件的存在/不存在激活配置文件。

例如,从官方文档中,如果某个环境变量存在、不存在或存在某个值,您可以激活配置文件。

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

另请注意,来自官方文档:

注意:像 FOO 这样的环境变量可以作为 env.FOO 形式的属性使用。进一步注意,环境变量名称在 Windows 上被规范化为全部大写。

或者,可以在某个文件(现有或缺失)上激活配置文件,如下所示:

<profiles>
  <profile>
    <activation>
      <file>
        <missing>path/to/missing/file</missing>
      </file>
    </activation>
    ...
  </profile>
</profiles>

如果您的设置不能应用于这两种情况中的任何一种,您可以(例如)对其进行调整以创建一个无害的文件,然后拒绝任何进一步的设置。

  • 无害文件丢失 > 配置文件已激活 > 已执行设置
  • 无害文件存在 > 配置文件未激活

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 2013-12-01
    • 2011-12-16
    • 2021-03-17
    • 2015-07-08
    • 1970-01-01
    • 2011-04-24
    • 2020-10-24
    相关资源
    最近更新 更多