Groovy / Ant:在ant任务中的Groovy循环中压缩两个文件

时间:2011-08-04 14:07:31

标签: ant groovy zip

我有以下问题: 1.)我必须文件12345678.xml-out和12345678.xml,我希望它们被压缩到12345.zip。 问题是我有一个循环,因为该目录中可能有多个这样的对:

<target>
    <groovy>

    import java.util.regex.Pattern
    import java.util.regex.Matcher

    (...)   
        f.eachFileMatch { it.split("\\.")[1].length()==7 } {
            (.. do something and then zip)

                def ant = new AntBuilder() 
ant.zip(
    destfile: "C:/temp.zip", 
    fileset: HERE I NEED A PATTERN MATCH with the GROOVY it variable...
)
        }   

    </groovy>

</target>

2。)一般问题:是否有可能在antBuilder对象中使用groovy变量?

1 个答案:

答案 0 :(得分:0)

这样的事情有用吗?

<target>
  <groovy>
    def ant = new AntBuilder()
    def pattern = ~/([0-9]{7}).xml/
    def base = new File( '.' )
    base.eachFileMatch( pattern ) { f ->
      def prefix = ( f.name =~ pattern )[0][1]
      ant.zip(
        basedir: base,
        destfile: "${prefix}.zip", 
        includes: "${prefix}.xml,${prefix}.xml-out"
      )
    }   
  </groovy>
</target>