【问题标题】:Zipping sub folders into separate zip files将子文件夹压缩到单独的 zip 文件中
【发布时间】:2014-05-26 08:40:05
【问题描述】:

我有一个这样的目录结构: Parent |->A |->B |->* 我需要像这样压缩它: Dest |->A.zip |->B.zip |->*.zip 其中* 表示我不知道子文件夹的名称。

我该怎么做?

我正在处理一个 maven 项目,但我不介意使用 antrun 插件

【问题讨论】:

  • 您的父 Parent 的 À` 和 B 模块吗? * 特别是 you don't know the names of the sub-folders 是什么意思?这些是文件夹子模块还是什么?
  • 这里没有模块的概念,只是文件系统中的子文件夹。子文件夹集未知。

标签: maven ant maven-antrun-plugin


【解决方案1】:

这是另一个我喜欢的解决方案,因为它不需要 antcontrib:

<target name="zipContentPackage">
    <basename property="dir.name" file="${file_name}"/>
    <echo message="Zipping folder: ${dir.name}"/>
    <zip destfile="${zip_dir}/${dir.name}.zip" basedir="${file_name}"/>
</target>

<target name="-wrapper-zipContentPackage">
    <antcall target="zipContentPackage" inheritAll="true">
        <param name="file_name" value="${basedir}" />
    </antcall>
</target>

<target name="packageContent">
    <delete dir="${zip_dir}"/>
    <mkdir dir="${zip_dir}"/>

    <subant genericantfile="${ant.file}" target="-zipContentPackage" inheritall="true">
        <dirset dir="${content_dir}" includes="*" />
    </subant>
</target>

注意事项:

  1. 我用sagioto's code来说明
  2. 这不是最有效的解决方案

【讨论】:

    【解决方案2】:

    我最终使用了 antcontrib 的 foreach

    <target name="init">
        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.compile.classpath"/>
    </target>
    
    
    <target name="packageContent" depends="init">
        <delete dir="${zip_dir}"/>
        <mkdir dir="${zip_dir}"/>
        <foreach target="zipContentPackage" param="file_name">
            <path>
                <dirset dir="${content_dir}" includes="*"/>
            </path>
        </foreach>
    </target>
    
    <target name="zipContentPackage">
        <basename property="dir.name" file="${file_name}"/>
        <echo message="Zipping folder: ${dir.name}"/>
        <zip destfile="${zip_dir}/${dir.name}.zip" basedir="${file_name}"/>
    </target>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-07
      • 2016-12-17
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多