Я довольно плохо знаком с муравьем и смотрел на задачи. Я пытаюсь генерировать XML-файл. Я должен назвать внешний процесс, или у муравья есть некоторый способ сделать это? Это могло быть столь же просто как отправка строки в txt файл и сохранение его как .xml. Действительно ли это возможно?
Правильный ответ зависит от того, что вы на самом деле пытаетесь сделать.
Вы можете создать крошечный xml-документ, используя задачу echo и замену аргументов, но это становится трудно поддерживать очень быстро.
Если ваша цель - сгенерировать XML-документ, который в основном является шаблоном с заменой парой значений, вам следует рассмотреть создание шаблона документа, а затем использовать задачу Копировать с фильтрацией .
Если вам нужно изменить структуру документа в зависимости от данных из Ant (или собранных откуда-то еще), то лучше подойдет задача xslt . Проблема с XSLT заключается в том, что его не всегда просто использовать (XSLT использует функциональное программирование, а не процедурное программирование).
Вы можете обнаружить, что правильный ответ - написать свою собственную задачу Ant , которая будет делать именно то, что вы хотите, именно так, как вы этого хотите.
Если вы сможете лучше описать то, чего пытаетесь достичь, я уверен, что кто-то будет счастлив дать более точный ответ.
Вы можете использовать задачу Replace
для замены заданной строки в шаблоне и сохранения ее в формате xml.
Простой пример, приведенный в документации ant:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
Я использовал его для замены константы @version@
на фактический идентификатор сборки в java-проекте, например.
Если вы хотите выполнить более сложную обработку, вам стоит обратить внимание на задачу XSLT
. Например, для генерации документации с заменой даты
в выводе, вы можете использовать что-то вроде:
<xslt basedir="doc" destdir="build/doc"
extension=".html" style="style/apache.xsl">
<param name="date" expression="07-01-2000"/>
</xslt>
Вы можете сделать это, хотя мне кажется, что это больше похоже на то, что вы хотите написать сценарий заранее, или на то, что вы можете вызвать из Ant.
Задача будет такой:
<echo file="my.xml"><!--put escaped xml here--></echo>
Это, конечно, будет утомительно, так как все должно быть экранировано, но вы можете это сделать.
Когда вам приходится иметь дело с любым видом обработки XML в вашем рабочем процессе ant, настоятельно рекомендуется xmltask . Очень подробная документация и хорошая поддержка. Все, что вам нужно кроме этого, - это некоторые знания XPATH . Вот => еще одна полезная статья