【问题标题】:How do I use Ant to copy a folder?如何使用 Ant 复制文件夹?
【发布时间】:2010-03-19 04:38:10
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我认为您缺少当前的解决方案。
  • 您需要缩进代码以便在您的帖子中包含 XML。

标签: ant copy


【解决方案1】:

首先,这些是 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关于复制任务的全部内容。

【讨论】:

    【解决方案2】:

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

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

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

    实际上,这不是的意思是“dest中复制dir1”,而是“在@987654329中复制dir1的内容” @”。

    (一般来说,在 Ant 中,filesets 以及 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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        这样就可以了:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-29
          • 2018-06-14
          • 2010-11-05
          • 2011-03-15
          • 2020-04-15
          相关资源
          最近更新 更多