我想知道这是否可行:
zipfileset
中由于构建输出而可能存在或可能不存在的文件我如何在zipfileset
有什么想法吗?
由于
此致
KARTHIK
答案 0 :(得分:2)
包含/排除文件,但不包括目录。 至少从1.8.x开始(这是我正在使用的,没有检查1.6),你可以使用:
<zipfileset dir="something" prefix="" erroronmissingdir="false">
不会产生错误。 “erroronmissingdir”属性允许修复此情况。
答案 1 :(得分:1)
我认为没有任何问题。
这是一个示例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:\tmp\ant\build.xml
test:
[echo] found: C:\tmp\ant\src.zip:src/a/exists.txt
[mkdir] Created dir: C:\tmp\ant\extract
[copy] Copying 1 resource to C:\tmp\ant\extract
BUILD SUCCESSFUL
Total time: 0 seconds
尝试访问不存在的文件时没有错误。
以下是dir文件从zip中复制的结果:
$ find extract/
extract/
extract/src
extract/src/a
extract/src/a/exists.txt