我已将变量放在一些 .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 文件中的内容。那可能吗?我做错了什么?
答案 0 :(得分:0)
为此,您必须在Mule wrapper.conf
中设置属性:
[Mule standalone]/conf
文件夹。wrapper.conf
。# GC settings
下添加以下脚本:wrapper.java.additional.15=-Denv=prod
注意:确保号码正确无误。在此示例中,该文件中的最后一个数字是:wrapper.java.additional。 14