在Ant复制任务中扩展*

Rat*_*Pai 2 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"/>
Run Code Online (Sandbox Code Playgroud)

mar*_*ton 5

copy任务不支持tofile属性中的通配符.如果目标目录存在,但目标文件可能不存在,则可以使用a 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"/>
Run Code Online (Sandbox Code Playgroud)

${toString:....}您可以使用以下pathconvert任务来代替使用属性helper()语法:

<pathconvert property="destdir" refid="dest.dir"/>
<property name="dest" value="${destdir}/my.jar"/>
Run Code Online (Sandbox Code Playgroud)

  • 复制任务是否支持“文件”属性中的通配符? (2认同)