如何使用Ant复制文件夹?

def*_*foo 6 ant copy

我正在尝试使用Ant copy任务复制目录.

我是Ant的新手; 我目前的解决方案是:

<copy todir="${release_dir}/lib">
   <fileset dir="${libpath}" />
</copy>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好更短的方法来完成同样的事情?

zer*_*ble 14

首先,这些是Ant文档中的示例:

将目录复制到另一个目录

<copy todir="../new/dir">
  <fileset dir="src_dir"/>   
</copy>
Run Code Online (Sandbox Code Playgroud)

将一组文件复制到目录

<copy todir="../dest/dir">
  <fileset dir="src_dir">
    <exclude name="**/*.java"/>
  </fileset>
</copy>

<copy todir="../dest/dir">
  <fileset dir="src_dir" excludes="**/*.java"/>   
</copy>
Run Code Online (Sandbox Code Playgroud)

将一组文件复制到目录,将.bak附加到文件名中

<copy todir="../backup/dir">
  <fileset dir="src_dir"/>
  <globmapper from="*" to="*.bak"/>   
</copy>
Run Code Online (Sandbox Code Playgroud)

其次,这是关于复制任务的整个文档.


leo*_*loy 5

仅仅是因为文档对我而言不是很清楚,并且因为我所花费的时间可以为其他人服务:

文档说这“将目录(dir1)复制到另一个目录(dest)”:

<copy todir="../new/dest">
  <fileset dir="src/dir1"/>   
</copy>
Run Code Online (Sandbox Code Playgroud)

其实,这并不能意味着“ 复制dir1里面dest ”,而是“ 复制的内容dir1里面dest。”

(通常,在Ant中,文件集的“根目录”( 以及todir属性中的根目录)不被视为集合本身的一部分。)

将目录dir1放在dest一个目录中有几种选择(没有一个令我完全满意-我想象新的DirSet在这里会有所帮助,但没有)

<copy todir="../new/dest/dir1">
  <fileset dir="src/dir1"/>   
</copy>
Run Code Online (Sandbox Code Playgroud)

要么

<copy todir="../new/dest">
  <fileset dir="src" includes="dir1/**"/>
</copy>
Run Code Online (Sandbox Code Playgroud)

另请参阅此处此处