Муравей, (пере) записать в файл - PullRequest
4 голосов
/ 16 сентября 2009

Как написать (или перезаписать) следующее содержимое:

            <dependencies>
            <dependency>
                <groupId>ged.eprom</groupId>
                <artifactId>epromx</artifactId>
                <version>${version.to.set}</version>
                <classifier>stubjava</classifier>
            </dependency>
        </dependencies>

в файл с именем pom.xml в текущем каталоге.

Я пробовал скрипт ant:

        <echo file="pom.xml">
        <dependencies>
            <dependency>
                <groupId>ged.eprom</groupId>
                <artifactId>epromx</artifactId>
                <version>${version.to.set}</version>
                <classifier>stubjava</classifier>
            </dependency>
        </dependencies>
    </echo>

Но я получил сообщение об ошибке:

echo doesn't support the nested "dependencies" element.

Ответы [ 3 ]

24 голосов
/ 16 сентября 2009

Вы должны экранировать содержимое с помощью тега CDATA, что также означает, что оно не будет интерпретировать подстановку переменных, поэтому я бы разбил его на три оператора echo.

    <echo file="pom.xml"><![CDATA[
            <dependencies>
                    <dependency>
                            <groupId>ged.eprom</groupId>
                            <artifactId>epromx</artifactId>
                            <version>]]></echo>
    <echo file="pom.xml" append="true">${version.to.set}</echo>
    <echo file="pom.xml" append="true"><![CDATA[</version>
                            <classifier>stubjava</classifier>
                    </dependency>
            </dependencies>
   ]]> </echo>
13 голосов
/ 25 марта 2011

У вас есть задача echoxml:

http://ant.apache.org/manual/Tasks/echoxml.html

<echoxml file="pom.xml">
  <dependencies>
    <dependency>
      <groupId>ged.eprom</groupId>
      <artifactId>epromx</artifactId>
      <version>${version.to.set}</version>
      <classifier>stubjava</classifier>
    </dependency>
  </dependencies>
</echoxml>
3 голосов
/ 16 сентября 2009

Анализатор муравей считывает данные, которые вы хотите отобразить, как попытку добавить недопустимые дочерние элементы к родительскому элементу <echo/>. Если вы хотите вывести эту информацию на pom.xml, вы должны использовать сущности &lt; и &gt; для кодирования вывода вашего элемента:

<echo file="pom.xml">
            &lt;dependencies&gt;
                    &lt;dependency&gt;
                            &lt;groupId&gt;ged.eprom&lt;/groupId&gt;
                            &lt;artifactId&gt;epromx&lt;/artifactId&gt;
                            &lt;version&gt;${version.to.set}&lt;/version&gt;
                            &lt;classifier&gt;stubjava&lt;/classifier&gt;
                    &lt;/dependency&gt;
            &lt;/dependencies&gt;
</echo>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...