Ant写入属性文件存储过滤的属性

时间:2013-01-31 18:12:25

标签: ant properties

我正面临着一个非常简单的ANT脚本问题。我有一个脚本加载和设置从文件系统中的几个属性文件加载的许多属性。此属性用于预配置新项目。

问题是:我可以写一个新的属性文件,它持久化所有以给定前缀开头的属性(例如“ref.proj。*”)?

属性的编号和名称是可变的,因此我无法使用

    <propertyfile file="my.properties">
      <entry  key="ref.proj.first" value="${ref.first}"/>
       ...
      <entry  key="ref.proj.n" value="${ref.n}"/>
    </propertyfile>

将过滤器应用于属性文件任务是否可行? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

我花了很长时间才弄清楚所有的问题。遗憾...

您应该查看<echoproperties>任务。这将允许您选择各种属性并以属性 = 格式打印出来。

您可以将其用作属性文件本身。

答案 1 :(得分:0)

以下示例使用groovy ANT task

    <path id="build.path">
        <pathelement location="lib/groovy-all-2.1.0.jar"/>
    </path>

    <target name="create-properties">
        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>

        <groovy>
            new File("my.properties").withWriter { writer ->
                properties.findAll { it.key.startsWith("ref.proj") }.each {
                    writer.println it
                }
            }
        </groovy>
    </target>