Deployment Mule-Mule-deploy-override.properties,这可能吗?

Deployment Mule-Mule-deploy-override.properties,这可能吗?,deployment,properties,mule,environment,Deployment,Properties,Mule,Environment,我已经看到,可以使用mule app.properties和mule app override.properties文件来配置特定于环境的属性 是否也可以拥有mule deploy.properties和mule deploy override.properties文件,以便我可以拥有特定于环境的部署属性?我问这个问题的原因是因为我的config.resources属性在不同的环境中发生了变化 如果这是可能的,那么覆盖文件的正确命名约定是什么(如果与上面不同),我将把这个文件放在Mule Sta

我已经看到,可以使用
mule app.properties
mule app override.properties
文件来配置特定于环境的属性

是否也可以拥有
mule deploy.properties
mule deploy override.properties
文件,以便我可以拥有特定于环境的部署属性?我问这个问题的原因是因为我的
config.resources
属性在不同的环境中发生了变化


如果这是可能的,那么覆盖文件的正确命名约定是什么(如果与上面不同),我将把这个文件放在Mule Standalone中的什么位置?我很难找到任何关于这方面的Mule文档,因此任何指导都将不胜感激。提前感谢。

我建议您按以下方式设置:

  • 不使用默认属性
  • 在测试资源中保留单元测试的属性
  • 将测试、阶段和生产环境的属性作为文件保存在外部目录中
通过这种方式,您可以在不重建项目的情况下更新属性(触摸锚定文件就足够了)。此外,潜在的敏感属性可以保密

如果可以接受的话,另一种方法是使用和将所有属性放在同一个文件中


我的一位同事已经在github上创建了一个安装程序,支持Mule ESB上基于环境的属性文件。在那里获得一些灵感,或者只是按原样使用项目。

可能不是您想要的,但这就是如何做到的

首先,在src/main/resources下的项目中,创建一个名为“test.properties”的新的无标题文本文件

在test.properties中,可以添加要在项目中使用的属性

创建一个名为“testoverride properties.xml”的新Mule配置文件

打开新流的XML视图并添加以下内容

您可以指定覆盖属性文件所在的任何目录。 在这个示例中,我使用mule home目录/conf/,创建了一个名为properties的文件夹和一个名为test-override.properties的文本文件

现在,您可以将属性添加到test.properties,部署项目后,可以使用创建的test-override.properties文件覆盖这些属性


希望有帮助。

我们的解决方案是在每台服务器上设置一个带有环境名称的环境变量。环境变量是“mule.env”。因此对于QA环境,mule.env=QA。然后,我的项目中有一个属性占位符,如下所示:

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

然后,我在src/main/resources中有以下文件来存储特定于环境的属性:

  • 质量保证属性
  • staging.properties
  • 生产性能

首先,您可以拥有
deploy.properties
,但正如许多人所建议的那样,分别拥有特定于环境和特定于业务的属性是很好的。根据我的经验,我们使用了三种类型,如
业务
应用程序
系统
,这些属性基于环境。

您应该使用属性占位符将外部属性集绑定到默认的mule-app.properties中。 外部属性集是特定于环境的,如dev、test、stage和prod。 只有默认mule-app.properties中的引用会自动将所有属性重写为默认属性


有关更多详细信息,请阅读占位符,您可以使用over ride属性。。。它使用环境变量的最佳方式,我们在项目中使用相同的东西。

我也有类似的担忧

我是这样解决的-

环境:Mulestudio、Maven(基于命令)和Cloudhub

  • 在我的上下文占位符中声明了
    {mule.env}
    属性

  • 对于开发环境,测试和产品的mule.env=dev等等

  • 然后将概要文件添加到Maven pom.xml文件中

    
    测试
    产品属性
    开发属性
    真的
    戳
    开发属性
    测试属性
    发展
    测试属性
    产品属性
    

  • 在“构建”部分中添加了以下内容:

    
    src/main/resources/
    ${files.to.exclude.1}
    ${files.to.exclude.2}

  • 最后运行我的maven,在命令行上传递配置文件,如-

    mvn清洁包-Pdev
    ,其中
    dev
    是配置文件id

  • 这将排除“排除”属性中定义的产品和测试属性文件

    在这里它是高度可配置的


    希望这有助于

    动态设置并指定属性文件您应该执行以下操作:

    在mule-app.properties中定义环境属性值首先打开mule-app.properties。在该文件中,您可以定义一个名为example env的属性,并将其设置为dev。这是您的第一个属性描述,然后保存该文件

    然后在属性占位符中使用环境属性。为此,请返回global.xml,并编辑占位符的属性。在“全局图元属性”对话框中,将位置更改为“基本要素”- ${env}.properties并单击OK

    然后找到mmc-runtime-bundle-3.7。然后,导航到mule-enterprise-3.7.X/conf文件夹。一旦出现,在文本编辑器中打开wrapper.conf

    在此文件中,找到文件顶部附近最后编号的wrapper.java.additional指令。在它下面,创建一条新指令,该指令的数字递增1,在启动时将名为env等于dev的参数传递给运行时

    wrapper.java.additional.15=-Denv=dev 注意:请务必使用正确的号码。这个数字可能与其他数字不同
    <"context:property-placeholder location="${mule.env}.properties"/>
    
    mule.env= dev (or prod)
    
    redeployment.enabled=true
    encoding=UTF-8
    domain=default
    config.resources=sfdc-outbound-messaging-example.xml
    
    <"context:property-placeholder location="${mule.env}.properties"/>
    
    test-dev.properties
    test-qa.properties
    test-prod.properties
    
    <property-placeholder name="Property_Placeholder" location="test-${mule.env}.properties,file:///opt/app/test/app-config/test-override.properties"/>