【问题标题】:ant copy folder from zip fileant 从 zip 文件复制文件夹
【发布时间】:2012-09-26 10:12:01
【问题描述】:

我有一个结构如下的 zip 文件

apache-tomcat-6.0.26.zip apache-tomcat-6.0.26/webapps/manager

我只想将 manager 文件夹复制到另一个目录中

我试过了

<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/manager。我只需要管理器文件夹及其内容而不是其父文件夹。

尝试更改 to 但收到错误消息,表明该文件夹不是档案

【问题讨论】:

    标签: ant


    【解决方案1】:

    使用模式集来限制要从 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>
    

    【讨论】:

      【解决方案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>
      

      我非常不喜欢 &lt;unzip&gt; 任务,因为当它失败时,它不会给出任何错误(&lt;copy&gt; 的默认设置是出错时失败,这正是您在构建中想要的。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-04
        • 2013-10-29
        • 2014-08-15
        • 2018-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多