命令行属性文件引用覆盖mule-app.xml

时间:2015-11-25 19:26:04

标签: mule

我已将变量放在一些 .properties 文件中,并已成功在mule的 mule-app.properties中创建 mule.env 变量文件以引用要使用的文件。我试图允许命令行参数覆盖 mule.env 变量,以便可以使用指定的属性文件。我也喜欢在 mule-app.properties 文件中存在 mule.env 变量作为默认值,以防通过命令行设置任何内容。但似乎现有的 mule-app.properties 文件会覆盖命令行参数。

mule-app.parameters文件包含如下变量:

mule.env=dev

虽然命令行参数如下所示:

-Dmule.env=prod

属性占位符会查找属性文件,如下所示:

<context:property-placeholder location="classpath:${mule.env}.properties" />

我更喜欢的结果是当mule app以命令行参数开头时,属性占位符找到prod.properties文件而不是dev.properties文件;但是,它仍然使用dev.properties文件。

如果我从 mule-app.properties 文件中删除该变量,则命令行参数可以正常工作。

我更喜欢命令行覆盖 mule-app.properties 文件中的内容。那可能吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

为此,您必须在Mule wrapper.conf中设置属性:

  1. 导航至[Mule standalone]/conf文件夹。
  2. 在任何文本编辑器中打开wrapper.conf
  3. # GC settings下添加以下脚本:wrapper.java.additional.15=-­Denv=prod
  4. 注意:确保号码正确无误。在此示例中,该文件中的最后一个数字是:wrapper.java.additional。 14