Задача ant для печати содержимого каталога в файл - PullRequest
3 голосов
/ 05 мая 2011

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

  1. Выполнить <replaceregexp> для html-документа
  2. Для 'заменить 'в регулярном выражении, я бы хотел перебрать каталог файлов .js и внедрить тег для указания на каждый файл.

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

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

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Возможно, вы сначала захотите сгенерировать текст замены, обработав каталог, содержащий файлы .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='&lt;script type="text/javascript" src="http://your.url/\1"&gt;&lt;/script&gt;' />
  </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} в качестве регулярного выражения для замены текста.

0 голосов
/ 05 мая 2011

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

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

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

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

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