Mulesoft 没有从正确的文件中读取属性?

Mulesoft doesn't read properties from right file?

我对我的项目进行了 mavenize,试图找到处理 DEV、Pre-Production 和 Production 属性的正确方法。 我创建了一个名为 mule.env 的 属性,并添加了上下文 属性,例如

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

我有 mule-app.properties 和 mule-deploy.properties,它们的内容如下

mule-app.properties

c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev

mule-deploy.properties

c4=c4.p2
c3=c3.p2
redeployment.enabled=true
c2=c2.p2
encoding=UTF-8
config.resources=test-config.xml
domain=default

资源下有一个dev.properties,

dev.properties

c1=c1.dev
c2=c2.dev
c3=c3.dev
c4=c4.dev

而且我有一个流程来显示设置有效负载中的属性

<flow name="test-configFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/"  doc:name="HTTP"/>
    <set-payload value="c1:${c1} &lt;br/&gt; c2:${c2} &lt;br/&gt; c3:${c3}  &lt;br/&gt; ${mule.env}" mimeType="text/html" doc:name="Set Payload"/>
</flow>

结果是

c1:c1.p1 
c2:c2.p1 
c3:c3.p1 
dev

我希望结果像

c1:c1.dev
c2:c2.dev
c3:c3.dev
dev

因为属性应该来自 dev.properties

有什么想法吗?

这很明显,因为在您的 mule-app.properties 中包含:

c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev

这将覆盖资源
dev.properties 的值 解决方案:删除

c3=c3.p1
c2=c2.p1
c1=c1.p1

来自 mule-app.properties。所以,你 mule-app.properties 应该 只包含 :

mule.env=dev

没有其他值