Groovy / Ant: архивирование двух файлов в цикле Groovy в задаче ant - PullRequest
1 голос
/ 04 августа 2011

у меня следующая проблема: 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.) Общий вопрос: есть ли возможность использовать переменные groovy в объекте antBuilder ??

1 Ответ

0 голосов
/ 05 августа 2011

Работает ли что-то подобное?

<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>
...