如何编写(或覆盖)以下内容:
<dependencies>
<dependency>
<groupId>ged.eprom</groupId>
<artifactId>epromx</artifactId>
<version>${version.to.set}</version>
<classifier>stubjava</classifier>
</dependency>
</dependencies>
到当前目录中名为pom.xml的文件中。
我尝试过蚂蚁脚本:
<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.
答案 0 :(得分:24)
您必须使用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>
答案 1 :(得分:13)
您拥有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>
答案 2 :(得分:3)
ant解析器正在读取您想要回显的数据,以尝试将无效的子元素添加到<echo/>
父元素。如果您希望将该信息发送至pom.xml
,则应使用<
和>
实体对元素输出进行编码:
<echo file="pom.xml">
<dependencies>
<dependency>
<groupId>ged.eprom</groupId>
<artifactId>epromx</artifactId>
<version>${version.to.set}</version>
<classifier>stubjava</classifier>
</dependency>
</dependencies>
</echo>