задача ant для печати содержимого каталога в файл

#regex #list #ant #build

#регулярное выражение #Список #ant #сборка

Вопрос:

В рамках пользовательской сборки ant, с которой я играю, я хотел бы иметь сборку

  1. Выполните <replaceregexp> в HTML-документе
  2. Для ‘replace’ в регулярном выражении я хотел бы выполнить итерацию каталога с файлами .js и ввести тег, указывающий на каждый файл.

Я просматривал документы ant наhttp://ant.apache.org/manual/index.html

но я не видел ничего, что помогло бы мне выполнить итерацию или составить список файлов.

Ответ №1:

Вероятно, вы захотите сначала сгенерировать текст для замены, обработав каталог, содержащий файлы .js.

Одним из подходов может быть использование fileset для сбора имен файлов, затем pathconvert задача создания фрагмента html для использования заменяющего текста. Для каталога ‘my_dir’, например:

 <fileset id="dir.contents" dir="my_dir">
    <include name="*.js"/>
</fileset>

<pathconvert pathsep="${line.separator}" property="js.html" refid="dir.contents">
  <chainedmapper>
    <mapper type="flatten" />
    <regexpmapper from="(.*)" 
       to='amp;<script type="text/javascript" src="http://your.url/1"amp;>amp;</scriptamp;>' />
  </chainedmapper>
</pathconvert>

<echo>${js.html}</echo>
  

flatten Удаляет часть пути к файлу, содержащую каталог, оставляя только имя файла.

Затем echo выдает что-то вроде:

  [echo] <script type="text/javascript" src="http://your.url/a.js"></script>
 [echo] <script type="text/javascript" src="http://your.url/b.js"></script>
 [echo] <script type="text/javascript" src="http://your.url/c.js"></script>
  

Таким образом, вы можете затем использовать ${js.html} в качестве регулярного выражения для замены текста.

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

1. Спасибо! Я собираюсь попробовать это и вернуться назад.

Ответ №2:

Задача replaceregexp поддерживает вложенный элемент fileset. Пример из task doc

 <replaceregexp match="s " replace=" " flags="g" byline="true">
    <fileset dir="${html.dir}" includes="**/*.html"/>
</replaceregexp>
  

в http://ant.apache.org/manual/Tasks/replaceregexp.html

Это то, что вы ищете?