Как создать файл в распределенной системе с помощью ant script?

#file #scripting #ant #websphere-mq-fte

#файл #написание сценариев #ant #websphere-mq-fte

Вопрос:

я работаю с mqfte. я должен создать пустой текстовый файл с тем же именем, что и исходный файл, после его передачи адресату. Как это можно сделать с помощью ant script?

Сценарий:

Srcpath: srctest.dat destpath: desttest.dat

После того, как файл перемещен с пути src, мне нужно создать пустой файл test.dat в пути src с помощью ant script? как это можно сделать?

Ответ №1:

Перед передачей файлов вы могли бы использовать задачу Touch для создания новых пустых файлов, соответствующих тем, которые вы будете передавать (повторно использовать тот же набор файлов) во временном каталоге. После завершения переноса вы можете использовать задачу Переместить, чтобы скопировать пустые файлы в свой каталог src. Вы могли бы использовать overwrite =»false» в задаче перемещения, чтобы гарантировать, что файлы, оставшиеся в каталоге src, не будут заменены (например, если вы хотите убедиться, что у вас есть пустые файлы только для успешной передачи).

Вот пример.

 <project default="test">

  <target name="test">

    <touch>
      <fileset dir="src">
        <include name="test*"/>
      </fileset>
      <mapper type="regexp" from="(.*)" to="tmp/1"/>
    </touch>

    <move todir="dest">
      <fileset dir="src">
        <include name="test*"/>
        <!-- simulate file not transferred -->
        <exclude name="test.doc"/>
      </fileset>
      <globmapper from="test.*" to="result_*.txt"/>
    </move>


    <move todir="src" overwrite="false">
      <fileset dir="tmp"/>
    </move>

  </target>

</project>
  

Первый шаг заключается в вашей передаче. Один файл (test.doc ) не перемещается из каталога src (имитация неудачной передачи). Вы можете протестировать создание файлов с некоторым содержимым в каталоге src. После завершения целевой установки test.doc должно сохраняться исходное содержимое. Остальные файлы должны быть пустыми.

В ответ на ваш вопрос о сопоставителе регулярных выражений:

 <mapper type="regexp" from="(.*)" to="tmp/1"/>
  

Это записывает все имя входящего файла в группу…

 from="(.*)"
  

и добавляет «tmp/» к этой захваченной группе…

 to="tmp/1"
  

(В регулярном выражении 1 относится к первой захваченной группе в выражении. Группы определяются с помощью круглых скобок.)

Итак, из src/somefile.txt мы получим somefile.txt в качестве входного файла для mapper и переведем это в tmp/somefile.txt .

Комментарии:

1. Что делает параметр (to=»tmp/1) в задаче touch?. Не могли бы вы объяснить об этом… На сайте apache это непонятно…