【问题标题】:Ant writing property file storing filtered properties存储过滤属性的 Ant 写入属性文件
【发布时间】:2024-04-27 17:10:01
【问题描述】:

我遇到了一个非常简单的 ANT 脚本问题。我有一个脚本,可以加载和设置从文件系统中的多个属性文件加载的许多属性。此属性用于预配置新项目。

问题是:我可以编写一个新的属性文件来保存所有以给定前缀开头的属性(例如“ref.proj.*”)吗?

属性的编号和名称是可变的,所以我不能使用

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

可以对属性文件任务应用过滤器吗? 提前致谢!

【问题讨论】:

    标签: ant properties


    【解决方案1】:

    解决所有问题需要很长时间。对不起...

    您应该查看&lt;echoproperties&gt; 任务。这将让您选择各种属性并以 property = value 格式打印出来。

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

    【讨论】:

    • 非常感谢这有助于我解决问题!
    【解决方案2】:

    以下示例使用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>
    

    【讨论】: