如何使用ant分别压缩多个文件夹?

问题描述

| 如果我有一个包含多个子文件夹的文件夹(例如foo,bar,baz),如何使用ant分别将它们压缩到foo.zip,bar.zip和baz.zip中,而不用一个一个地将它们压缩? 理想情况下,还应该有一种方法来指定要压缩的文件/子文件夹,而不是“每个文件”。     

解决方法

        您不想使用ant-contrib。每次您使用ant-contrib都会糟透了,这会招致技术债务。使用蚂蚁时要记住的第一件事:让蚂蚁成为蚂蚁。蚂蚁就是它。它是声明性的。 ant的最初意图是简单地声明属性,并用Java来完成工作(在Java中,您有一个带有调试器和测试框架的真实IDE)。如蚂蚁样式元素中所述-“让蚂蚁成为蚂蚁”。如果必须使用ant-contrib,则应执行自己的ant任务。如果您无法做到这一点,请不要使用ant。 ant-contrib会使ant变得更糟ant会使它变得更糟,您很快就会发现无法维护的事情。足够的咆哮。 您甚至不需要为此做一个任务,这应该可以工作...它将/ tmp中的所有目录都压缩并压缩。应该可以帮助您达到目标。
    <mapper id=\"zip\" type=\"glob\"
    from=\"*\"
    to=\"*.zip\"/>

<target name=\"zip-craziness\">
    <apply executable=\"zip\">
        <targetfile/>
        <srcfile/>
        <dirset dir=\"/tmp\" />
         <mapper refid=\"zip\"/>
    </apply>
</target>
    ,        我用ant contrib的for-each来做这种事情。您可能可以改善以下问题:Ant:如何对目录中的每个文件执行命令?     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...