【问题标题】:Expanding * in Ant copy task在 Ant 复制任务中扩展 *
【发布时间】:2012-01-17 16:27:38
【问题描述】:

在蚂蚁复制任务中,在目标位置的路径中有一个“随机数”文件夹。当我尝试在路径中放一个 * 来处理它时,Ant 会按字面意思理解它,即不会扩展它,而是创建一个名为“*”的文件夹并复制到那里。如何告诉 Ant 将 * 扩展到那里的实际文件夹名称(那里只有 1 个文件夹,所以 * 不会扩展到多个文件夹)

<property name="dest" value="a/*/b/my.jar" />
<property name="src" value="my.jar" />

<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/>

【问题讨论】:

    标签: ant


    【解决方案1】:

    copy 任务不支持 tofile 属性中的通配符。如果目标目录存在,但目标文件可能不存在,那么您可以使用dirset 来捕获该目录。比如:

    <dirset dir="${basedir}" id="dest.dir">
          <include name="a/*/b" />
    </dirset>
    <property name="dest" value="${toString:dest.dir}/my.jar"/>
    <property name="src" value="my.jar" />
    
    <copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/>
    

    您可以使用pathconvert task,而不是使用属性助手 (${toString:....}) 语法:

    <pathconvert property="destdir" refid="dest.dir"/>
    <property name="dest" value="${destdir}/my.jar"/>
    

    【讨论】:

    • 复制任务是否支持“文件”属性中的通配符?
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 2023-03-27
    • 2012-06-17
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多