我需要在mule-config.xml
中添加一些特定于生产的行为。有没有办法在骡子中获取环境信息?
答案 0 :(得分:2)
您可以通过MEL访问所有系统属性。但我宁愿建议您在多个文件中模块化您的配置(例如:common-config.xml,test-config.xml,prod-config.xml),并根据环境在Mule启动时加载正确的文件。
答案 1 :(得分:2)
此外,您还可以为每个环境创建属性文件,并在mule配置文件中访问它。
答案 2 :(得分:0)
您可以创建包含所有配置的xml文件,并将文件导入/加载到mule项目
答案 3 :(得分:0)
在您的Mule配置文件(src / main / app / app-config-file.xml)中,您可以添加以下行:
<context:property-placeholder location="${environment.name}.properties" />
$ {environment.name}必须是系统环境变量。您需要确保部署应用程序的系统包含该变量。我认为你也可以在Maven构建中指定它,如果你使用的是Maven(clean install -Denvironment.name = test)。你可以试试。
要在本地测试,请右键单击您的项目,选择run as,选择运行配置,单击Environment选项卡,添加变量“environment.name”和值“local”(不带引号)并确保您的本地.properties文件存在于添加到构建路径的位置。例如,它可以是src / main / app,也可以是资源文件夹。
答案 4 :(得分:0)
答案 5 :(得分:0)
您可以使用不同的mule属性文件,如Mule-dev.properties,mule-test.properties。 在全局元素中添加属性占位符:
在mule-app.properties中,根据您要使用的env值定义env = test或dev。
清理项目并进行部署。有时它无法读取env特定属性。清理项目解决了这个问题。
答案 6 :(得分:0)
您可以在项目中添加属性文件,并从属性占位符中引用它。最好在mule-app.properties文件中添加环境值,这个文件位于/ src / main / app
答案 7 :(得分:0)
你可以在这个mule-app.properties中有一个像mule.env这样的变量,并从cloudhub属性向DEV,QA,UAT,PROD发送这个属性的值,然后在mule / src / app主资源中创建不同的属性文件然后使用Properties占位符配置此属性文件,并从cloudhub
动态发送mule-env的值答案 8 :(得分:0)
通常,这样做的方法是delcare一个属性bean,在其中设置环境特定值,如PROD,QA,DEV或local。这个特定于环境的值在mule.env = local中的mule-app.properties中设置,这需要设置为我们尝试部署它的环境,并且API会选择正确的属性文件。