Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven Mulesoft没有从正确的文件中读取属性?_Maven_Mule Studio - Fatal编程技术网

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

Maven Mulesoft没有从正确的文件中读取属性?,maven,mule-studio,Maven,Mule Studio,我让mavenize我的项目,试图找到正确的方法来处理开发、预生产和生产属性。 我创建了一个名为mule.env的属性,并添加了上下文属性,如 <context:property-placeholder location="${mule.env}.properties"/> mule-deploy.properties 我在参考资料下有一个dev.properties 开发属性 我有一个流来显示集合有效载荷中的属性 <flow name="test-configFlow"&g

我让mavenize我的项目,试图找到正确的方法来处理开发、预生产和生产属性。 我创建了一个名为mule.env的属性,并添加了上下文属性,如

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

我在参考资料下有一个dev.properties

开发属性

我有一个流来显示集合有效载荷中的属性

<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.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应用程序是默认的,mule部署将覆盖它。如果mule app覆盖${mule.env}.properties,我应该将所有环境的默认值放在哪里?mule app用于放置系统变量,其中定义的值将覆盖resources文件夹下属性文件值的任何值。因为它是首先加载的,所以您只需要保留${mule.env},以便它根据您在${mule.env}中给出的环境值从resources文件夹(如dev.properties或Production.properties等)中选择正确的属性文件。因此,您只需要将mule.env=dev或env=productionhere…您不需要在mule-deploy.propertiesThanks上放置任何内容,这是有意义的。只有一件事,如果我想为所有环境添加一个默认值,有没有一个地方可以放置它?您可以在代码中的mule flow中尝试类似以下${property.name:default}示例${c3:c1.dev}的内容。。所以它从那里取默认值。。。看看这个
c1:c1.p1 
c2:c2.p1 
c3:c3.p1 
dev
c1:c1.dev
c2:c2.dev
c3:c3.dev
dev
c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev
c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev