【问题标题】:Replacing property dynamically based on environments in Ant scripts在 Ant 脚本中根据环境动态替换属性
【发布时间】:2013-09-01 22:31:50
【问题描述】:

我想开发用环境特定属性替换应用程序属性的 ant 脚本。我的要求是我将在单个 env.properties 文件中拥有所有环境属性。在构建应用程序期间,我需要用 env.properties 文件中的任何内容替换。当我有每个环境的属性文件时,Ant 替换效果很好。

示例:env.properties

dev.AddNETWORK_USER=devUser
dev.ADDPASS=devPass
sit.AddNETWORK_USER=situser
sit.ADDPASS=sitPass

这需要在mule.properties 中替换为 对于 DEV 环境:

dev.AddNETWORK_USER=devUser
dev.ADDPASS=devPass

对于 SIT 环境:

AddNETWORK_USER=sitUser
ADDPASS=sitPass

【问题讨论】:

  • 我已经检查了那个帖子。这对我也很有效。但是,如果我需要为所有环境提供一个属性文件?
  • 为什么要让解决方案更复杂?问题是 ANT 不支持嵌套属性名称,例如:${${ENV}.AddNETWORK_USER}

标签: ant


【解决方案1】:

您可以在 env.properties 文件中使用属性 ant 任务。这允许根据您的需要访问 key=value 对。您可以将环境特定属性重定向到您想要的文件或写入一个特定文件。

 <property file="${base.dir}/env.properties"/>
    <for list="dev,sit" param="value">
         <sequential>
              <echo message="@{value}.AddNETWORK_USER=${@{value}.AddNETWORK_USER}" append="true" file="${base.dir}/@{value}Any-File.prop"/>
               <echo message="${line.separator}" append="true" file="${para.home}/@{value}Any-File.prop"/>
               <echo message="@{value}.ADDPASS=${@{value}.ADDPASS}" append="true" file="${para.home}/@{value}Any-File.prop"/>

           </sequential>
     </for>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2016-01-14
    • 2019-02-10
    • 2010-11-13
    • 1970-01-01
    • 2011-07-13
    相关资源
    最近更新 更多