Повторно использовать коллекцию файлов в разных задачах в Ant? - PullRequest
0 голосов
/ 16 июня 2011

У меня есть набор файлов в нескольких каталогах, которые я хотел бы сжать, а затем удалить.

fileset s, похоже, требуют указания конкретного каталога, и похоже, что patternset s можно использовать повторно, но мне все равно придется иметь несколько fileset s (и кажется, что fileset тип данных "legacy" ).

files может быть то, что я после, но я не вижу способа повторно использовать список файлов, используя его.

Я бы ожидал, что смогу сделать что-то вроде этого:

<files id="myfiles" includes="artifacts.jar content.jar 
        /plugins/*.jar /features/*.jar" />

<target name="zip">
    <zip destfile="dest.zip">
        <files ref="myfiles">
    </zip>
</target>

<target name="clean">
    <delete>
        <files ref="myfiles">
    </delete>
</target>

Какой самый чистый способ сделать это?

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Путь содержит вложенные ресурсы, например наборы файлов

<project default="main">

   <path id="myfiles">
      <fileset dir="/path/to/some/dir">
         <include name="**/*.xml"/>
      </fileset>
      <fileset dir="/path/to/some/other/dir">
         <include name="**/*.xslt"/>
      </fileset>
      <!-- ... -->
   </path>

   <target name="zip">
      <zip destfile="dest.zip">
         <path refid="myfiles"/>
      </zip>
   </target>

   <target name="clean">
      <delete>
         <path refid="myfiles"/>
      </delete>
   </target>

   <target name="main" depends="zip,clean"/>

</project>
0 голосов
/ 23 июня 2011

Я закончил тем, что fileset 'dir был корнем и использовал несколько элементов include внутри fileset для включения определенных файлов в определенные подкаталоги.Как то так:

<fileset dir="." id="fileset.my_files">
    <include name="file1.jar" />
    <include name="dir1/*.jar" />
</fileset>

<target name="build_zip">
    <zip destfile="${dist}/${zip.file}">
        <fileset refid="fileset.my_files" />
    </zip>
</target>

<!-- etc -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...