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>