2013-03-19 59 views
0

我有以下代碼:保留原始文件名在Groovy Ant任務

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

在這個例子中,我想螞蟻創建具有相同的名稱與原始文件壓縮,但帶有.zip添加到最後。有沒有辦法做到這一點,而不知道原始文件的名稱提前在螞蟻?我希望能夠對其他ant任務也做同樣的事情。

換句話說,我希望文件名變成任何「模式」爲每個文件解決的問題。

+0

「工作」對象是什麼類? groovy zip任務接受字符串作爲參數。 – 2013-03-19 22:49:02

+0

我的錯誤,那只是一個容器,包括它使問題變得複雜。我已經編輯出來了。當你說Groovy Zip Task ...是一個Ant事物還是Groovy事物?我會怎麼做? – Steve 2013-03-20 17:08:59

回答

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一個非常有用的功能。

+0

好的,所以你只是說要做到這一點的唯一方法就是遍歷它們,沒有任何聲明的方式來做到這一點。感謝您的幫助! – Steve 2013-03-21 14:46:14

相關問題