如何使用Ant复制文件夹?

时间:2010-03-19 04:38:10

标签: ant copy

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

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

<copy todir="${release_dir}/lib">
   <fileset dir="${libpath}" />
</copy>

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

4 个答案:

答案 0 :(得分:14)

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

将目录复制到另一个目录

<copy todir="../new/dir">
  <fileset dir="src_dir"/>   
</copy>

将一组文件复制到目录

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

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

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

<copy todir="../backup/dir">
  <fileset dir="src_dir"/>
  <globmapper from="*" to="*.bak"/>   
</copy>

其次,这是关于复制任务的整个documentation

答案 1 :(得分:4)

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

文档说这&#34;将目录(dir1)复制到另一个目录(dest)&#34;:

<copy todir="../new/dest">
  <fileset dir="src/dir1"/>   
</copy>

实际上,意味着&#34; 复制dir1dest &#34;内,而不是&#34; 复制dir1 &#34;内的dest内容。

(一般来说,在Ant中,filesets的&#34;根目录&#34;以及todir属性 - 不被认为是集合本身的一部分。 )

要将目录dir1放在dest内,我可以选择几种方式(没有一种方法让我满意 - 而且我想象新的DirSet会对此有所帮助,但是没有)

<copy todir="../new/dest/dir1">
  <fileset dir="src/dir1"/>   
</copy>

<copy todir="../new/dest">
  <fileset dir="src" includes="dir1/**"/>
</copy>

另请参阅herehere

答案 2 :(得分:1)

这样做:

<copy todir="directory/to/copy/to">
    <fileset dir="directory/to/copy/from"/>
</copy>

蚂蚁手册是您的朋友:Ant Manual,在这种情况下:Copy Task

答案 3 :(得分:1)

来自http://ant.apache.org/manual/Tasks/copy.html

<copy todir="../new/dir">
  <fileset dir="src_dir"/>
</copy>