Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 如何";动态地;生成文件集?_Ant - Fatal编程技术网

Ant 如何";动态地;生成文件集?

Ant 如何";动态地;生成文件集?,ant,Ant,如何根据用户输入动态生成文件集 鉴于此: root --dir1 ----filesA.txt ----subdir1_1 --dir2 ----filesB.xml --dir3 ----filesC.java ----subdir3_1 --dir4 ----filesD.txt ----subdir4_1 ------subdir4_1_1 命令行调用: ant -Ddirectory="dir1 dir3" <target name="zip"> <zip de

如何根据用户输入动态生成文件集

鉴于此:

root
--dir1
----filesA.txt
----subdir1_1
--dir2
----filesB.xml
--dir3
----filesC.java
----subdir3_1
--dir4
----filesD.txt
----subdir4_1
------subdir4_1_1
命令行调用:

ant -Ddirectory="dir1 dir3"

<target name="zip">
  <zip destfile="${root}/archive.zip">
    <fileset dir="${root}">
      <include name="**/*"/>
    </fileset>
  </zip>
</target>
ant-Ddirectory=“dir1 dir3”
我只想压缩用户指定的目录(及其子文件)。我曾想过使用PropertyRegex任务,但我认为这是一种丑陋的方法。

使用antcontrib提供的foreach:

ant-Ddirectory=“dir1,dir3” ${folder}

太棒了!我还没有想到zip任务更新属性,好主意!谢谢
ant -Ddirectory="dir1,dir3"

<project name="build" default="zip" basedir=".">
<!-- declare ant-contrib -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
  <classpath>
    <pathelement location="${basedir}/ant-contrib-1.0b3.jar"/>
  </classpath>
</taskdef>

<property name="root" value ="folder"/>
<target name="zip">
    <delete file="${root}/archive.zip"/>
    <foreach list="${directory}" param="folder" target="zipdir"/>
</target>

<target name="zipdir">
    <echo>${folder}</echo>
    <zip destfile="${root}/archive.zip" update="true">
        <fileset dir="${root}">
            <include name="${folder}/**/*"/>
        </fileset>
    </zip>
</target>