Ant复制任务:将每个Project下的所有唯一src文件夹(包括子目录)复制到单个目录

Ant copy task : Copying all only src folder (including subdirectories ) under each Project to single directory

我有以下目录结构:

RootFolder
    |build.xml
    |Project 1
        |src
        |resources
    |Project 2
        |src
        |resources      
    |Project 3
        |src        
        |resources  

我想将每个项目下所有唯一的src文件夹(包括子目录)复制到单个目录

这是我试过的

<target name="prep_emma" >  
    <copy todir="${dest.dir}/src" verbose="true"  >
         <fileset dir="${RootFolder}">          
             <include name="**/JavaSource/com/**/*.java"/>
         </fileset>
    </copy> 
</target>

但这会在目标位置创建整个文件夹结构

dest.dir
    |Project 1
        |src        
    |Project 2
        |src        
    |Project 3
        |src

但我想要

dest.dir    
    |src    

您需要一个 file mapper,cutdirsmapper 应该足够了,f.e。 :

<copy todir="${dest.dir}/src" verbose="true"  >
 <fileset dir="${RootFolder}">          
  <include name="**/JavaSource/com/**/*.java"/>
 </fileset>
 <cutdirsmapper dirs="1"/>
</copy> 

意味着领先的项目 x 被剥离。

cutdirsmapper (since Ant 1.8.2)

This mapper strips a configured number of leading directories from the source file name.