我有一个包含以下结构的zip文件
apache-tomcat-6.0.26.zip Apache的Tomcat的6.0.26 / web应用/管理器
我想将经理文件夹复制到另一个目录
我试过
<copy todir="${tomcat.webapp.dir}/manager/" includeEmptyDirs="true">
<zipfileset src="${tomcat.zip.file}/" >
<patternset>
<include name="apache-tomcat-${tomcat.version}/webapps/manager" />
</patternset>
</zipfileset>
</copy>
输出管理器文件夹包含以下结构 Apache的Tomcat的6.0.26 / webapps /目录经理。我只需要经理文件夹及其内容而不是其父母。
尝试更改为但收到错误信息该文件夹不是archieve
答案 0 :(得分:6)
使用模式集来限制从zip中提取的文件,以及剥离前导目录名称的映射器
<unzip src="apache-tomcat-${tomcat.version}.zip" dest="${tomcat.webapp.dir}/manager">
<patternset>
<include name="**/webapps/manager/**"/>
</patternset>
<globmapper from="apache-tomcat-${tomcat.version}/webapps/manager/*" to="*"/>
</unzip>
答案 1 :(得分:2)
这是我的解决方案:
<copy todir="${tomcat.webapp.dir}/manager/" includeEmptyDirs="true">
<zipfileset src="${tomcat.zip.file}/" prefix="apache-tomcat-${tomcat.version}/webapps" >
<patternset>
<include name="apache-tomcat-${tomcat.version}/webapps/manager" />
</patternset>
</zipfileset>
</copy>
我非常不喜欢<unzip>
任务,因为当它失败时,它没有错误(<copy>
的默认值是失败时出错,这正是你在构建中想要的。)