Ant копирует файлы, читая файл свойств - PullRequest
2 голосов
/ 09 августа 2011

У меня есть 2 набора свойств. Один - список файлов, а другой - список директорий.Например:

Файлы = файл1, файл2, файл3, файл4

destination.dir = dir1, dir2, dir3, dir4

Эти 2 свойстваопределено в build.properties.

Я хочу скопировать файл1 в dir1, файл2 в dir2 и т. д.

Как этого добиться в муравье?

Спасибо

1 Ответ

1 голос
/ 24 августа 2011

раствор с муравьиным аддоном Flaka

<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- make standard ant tasks like copy understand EL expressions -->
<fl:install-property-handler />

<property name="files" value="/some/path/file1,/some/path/file2,/some/path/file3,/some/path/file4"/>
<property name="destination.dir" value="/some/otherpath/dir1,/some/otherpath/dir2,/some/otherpath/dir3,/some/otherpath/dir4"/>

 <!-- iterate over the csv property destination.dir -->
 <fl:for var="dir" in="split('${destination.dir}', ',')">
  <!-- copy the first item from csv property ${files} -->
  <copy file="#{split('${files}',',')[0]}" todir="#{dir}" verbose="true"/>
  <!--
     afterwards delete this file item from csv property ${files}, means
     editing and overwriting ${files} for the next loop
  -->
    <fl:let>files ::= replace('${files}', '' , '#{split('${files}',',')[0]},?' )</fl:let>
 </fl:for>

</project>

альтернативно используйте некоторые скриптовые языки как groovy, beanshell, (j) ruby, javascript .. в рамках скриптовой задачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...