【发布时间】:2015-12-14 16:08:02
【问题描述】:
我有一些在 Maven 项目中的配置设置,我想保留这些设置以构建到新设置的系统中,但如果配置设置已经存在,则不会触及。我遇到的一个问题是,当我从构建中删除设置时,它也在我进行构建时从目标服务器中删除了设置。
什么是好的替代品?
【问题讨论】:
-
你能举个例子吗?你在说什么……
标签: maven build conditional
我有一些在 Maven 项目中的配置设置,我想保留这些设置以构建到新设置的系统中,但如果配置设置已经存在,则不会触及。我遇到的一个问题是,当我从构建中删除设置时,它也在我进行构建时从目标服务器中删除了设置。
什么是好的替代品?
【问题讨论】:
标签: maven build conditional
一种可能的解决方案是将新系统的特定设置移动到 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>
如果您的设置不能应用于这两种情况中的任何一种,您可以(例如)对其进行调整以创建一个无害的文件,然后拒绝任何进一步的设置。
【讨论】: