Как мне использовать Ant для копирования папки? - PullRequest
6 голосов
/ 19 марта 2010

Я пытаюсь скопировать каталог с помощью задачи Ant copy.

Я новичок в Ant; мое текущее решение:

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

Мне интересно, есть ли лучший и более короткий способ сделать то же самое?

Ответы [ 4 ]

14 голосов
/ 19 марта 2010

Прежде всего, это примеры из документации 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>

Во-вторых, вот вся документация о задаче копирования.

4 голосов
/ 28 мая 2014

Только потому, что документы были не очень понятны для меня, и потому что время, которое я провел, может служить другим:

В документах сказано, что это «копирует каталог (dir1) в другой каталог (dest)»:

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

На самом деле, это не означает " копировать dir1 внутри dest", а скорее " копирует содержимое dir1 внутри dest».

(Как правило, в Ant «корневой каталог» наборов файлов - как и атрибут todir - не считается частью самого набора.)

Чтобы поместить каталог dir1 в dest, у него есть несколько альтернатив (ни одна из них меня не устраивает - и я предположил, что новый DirSet здесь поможет, но нет)

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

или

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

См. Также здесь и здесь .

1 голос
/ 19 марта 2010

С http://ant.apache.org/manual/Tasks/copy.html:

<copy todir="../new/dir">
  <fileset dir="src_dir"/>
</copy>
1 голос
/ 19 марта 2010

Это сделает это:

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

Руководство по муравьям - ваш друг: Руководство по муравьям , в данном случае: Задача копирования

...