ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ludwig, Michael" <>
Subject RE: simplify copy with regexpmapper (mapper/regexp)
Date Sat, 18 Sep 2010 14:17:26 GMT
> Now I want to copy the files below src/*/lib, or most of them.
> And I want to strip the leading two directories. I came up with
> the following solution, but it is clumsy and I think there is
> a better way that I'm missing.

It appears to me from the documentation of the Mapper Type [1]
that regexmapper/@handledirsep could be used to accomplish the job.

> <project default="copy">
>   <property name="source.dir" location="src"/>
>   <property name="target.dir" location="lib"/>
>   <target name="copy">
>     <copy todir="${target.dir}">
>       <fileset dir="${source.dir}">
>         <include name="*/lib/**/*.*"/>
>         <exclude name="**/urmel.*"/>
>       </fileset>
>       <!-- portability: path separator logic redoubled in regexp -->
>       <mapper type="regexp" from="^[-_a-zA-Z0-9]*[\\/]lib(.*)" to="\1"/>

It could fit in here.

>     </copy>
>   </target>
> </project>

Unfortunately, however, the <copy> task in Ant 1.8.1 does not support
a nested <regexmapper>.

  copy doesn't support the nested "regexmapper" element.

You need a plain <mapper>, but:

  mapper doesn't support the "handledirsep" attribute

Looks like there is still potential to improve composability.

Michael Ludwig 
View raw message