0

我有以下代码:

new AntBuilder().zip( destFile: "${file}.zip" ) {
        fileset( dir: srcDir ) {
            include( name:pattern )
        }
    }

在此示例中,我希望ant 创建一个与原始文件同名的 zip,但在末尾添加一个 .zip。有没有办法在不提前知道原始文件名的情况下做到这一点?我也希望能够对其他 ant 任务做同样的事情。

换句话说,我希望文件名成为每个文件解析为的任何“模式”。

4

1 回答 1

1

像这样的东西?

<target name="zip-files">
    <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>

    <dirset id="dirsToZip" dir="src">
        <include name="dir*"/>
    </dirset>

    <groovy>
        project.references.dirsToZip.each { 
            ant.zip(destfile: "${it}.zip", basedir: it)
        }
    </groovy>
</target>

如果发现 groovy 任务通过文件集或 dirset 进行迭代的能力非常有用。

于 2013-03-20T22:37:14.043 回答