我想知道这是否可能:
- 指
zipfileset
中可能存在也可能不存在的文件,因为构建输出
我如何在zipfileset
中处理这个
任何想法?
感谢对
Karthik
Include/exclude适用于文件,但不适用于目录。至少在1.8。x(这是我使用的,没有检查1.6),您可以使用:
<zipfileset dir="something" prefix="" erroronmissingdir="false">
不产生该错误。"erroronmissingdir"属性允许修复此情况。
我看不出有什么问题。
下面是一个示例zip (jar)文件:
$ jar tvf src.zip
0 Wed Nov 30 11:54:38 GMT 2011 META-INF/
62 Wed Nov 30 11:54:38 GMT 2011 META-INF/MANIFEST.MF
0 Wed Nov 30 11:53:28 GMT 2011 src/
0 Wed Nov 30 11:57:14 GMT 2011 src/a/
0 Wed Nov 30 11:53:38 GMT 2011 src/a/exists.txt
0 Wed Nov 30 11:57:14 GMT 2011 src/a/other.txt
下面是一个示例构建文件,用于测试存在和不存在文件的zipfileset的行为:
<project default="test">
<target name="test">
<pathconvert property="found">
<zipfileset src="src.zip">
<include name="src/a/not-exists.txt"/>
<include name="src/a/exists.txt"/>
</zipfileset>
</pathconvert>
<echo message="found: ${found}"/>
<mkdir dir="extract"/>
<copy todir="extract">
<zipfileset src="src.zip">
<include name="src/a/not-exists.txt"/>
<include name="src/a/exists.txt"/>
</zipfileset>
</copy>
</target>
</project>
下面是这个示例的输出:
$ ant
Buildfile: C:tmpantbuild.xml
test:
[echo] found: C:tmpantsrc.zip:src/a/exists.txt
[mkdir] Created dir: C:tmpantextract
[copy] Copying 1 resource to C:tmpantextract
BUILD SUCCESSFUL
Total time: 0 seconds
访问不存在的文件没有错误
下面是从zip拷贝到dir文件的结果:
$ find extract/
extract/
extract/src
extract/src/a
extract/src/a/exists.txt