【问题标题】:Using ant with build configuration files将 ant 与构建配置文件一起使用
【发布时间】:2009-05-21 18:46:46
【问题描述】:

我正在尝试通过使用带有 ant 的配置文件来自定义我的构建。我打算做的是使用具有以下模式的配置文件: 文件路径、要匹配的模式、要替换的模式

我想要这样,我只需将内容添加到配置文件中,然后 ant 构建脚本读取这些值并进行所需的更改。

我已经知道如何在文件中进行正则表达式查找和替换。我正在寻找的是一种从这样的配置文件中读取值的方法。

【问题讨论】:

    标签: ant build-automation


    【解决方案1】:

    在 Ant 中有多种方法可以从文件中读取信息。

    通用的是LoadFile Ant Task。不过我会推荐loadProperties Task。您可以使用此任务来读取属性,例如: toReplace=string_to_replace with=replacement_string,然后在您的正则表达式中使用属性“toReplace”和“with”。

    【讨论】:

    • 但是这不会导致不可变的变量 toReplace 和 with 吗?我想遍历文件并进行所有更改。
    • 你完全正确,对不起。我实际上并不确定这样做的好方法,我相信在 Ant 中更有经验的人会有这样做的“蚂蚁方式”。我唯一能建议的就是看看 ant contrib 的 任务——它可能会有所帮助。
    【解决方案2】:

    如果我理解正确的话,你想为各种环境生成一组配置文件。

    我目前使用的解决方案是由 Ant 任务调用的 Groovy 脚本。由于 Ant 不允许您重新定义已设置的属性,因此使用它来生成具有不同值的多个文件是相当棘手的。

    如果你想探索这个,只需看看Groovy,尤其是Template Engine

    【讨论】:

      【解决方案3】:

      我会在 ant 中使用 filterset 功能。您可以使用模式@replace_me@ 创建带有要替换的字符串的配置文件的参数化版本。然后定义一个属性文件来定义替换值。你可以

      <copy toDir="${dist.dir}/docs">
        <fileset file="config.xml"/>
        <filterset>
          <filtersfile file="path/to.properties"/>
        </filterset>
      </copy>
      

      那么属性文件就是 name=value 行。

      您在指定文件集和过滤器集方面有很大的灵活性,请参阅 Ant 文档了解这些内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-28
        • 2010-10-12
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        • 2017-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多