在Ant复制任务中展开*

  • 本文关键字:任务 Ant 复制 ant
  • 更新时间 :
  • 英文 :


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

<property name="dest" value="a/*/b/my.jar" />
<property name="src" value="my.jar" />
<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/>

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"/>

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

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

相关内容

  • 没有找到相关文章