Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ant任务编辑xml_Ant - Fatal编程技术网

使用ant任务编辑xml

使用ant任务编辑xml,ant,Ant,我试图使用ant任务编辑我的config.xml文件,但我无法做到这一点。有人能告诉我如何使用ant任务自动编辑xml,这样我就不需要为每个新分支手动更改它吗?要检查的第一个选项是ant任务。有关其用法的介绍,请参见。我已经使用groovy来实现这一点。groovy非常类似于Java,因此您可以创建与静态Java方法非常类似的groovy类,并使用任务让ant调用groovy脚本(当然需要包含groovy任务定义) 因为groovy可以使用Java语法,所以可以包括org.w3c.com.*库来

我试图使用ant任务编辑我的config.xml文件,但我无法做到这一点。有人能告诉我如何使用ant任务自动编辑xml,这样我就不需要为每个新分支手动更改它吗?

要检查的第一个选项是ant任务。有关其用法的介绍,请参见。

我已经使用groovy来实现这一点。groovy非常类似于Java,因此您可以创建与静态Java方法非常类似的groovy类,并使用
任务让ant调用groovy脚本(当然需要包含groovy任务定义)

因为groovy可以使用Java语法,所以可以包括org.w3c.com.*库来访问DOM类

例如,显示向指定的web.xml文件添加资源引用元素的代码片段:-

import org.w3c.dom.*;

String web_xml_filename=args[0];
String res_ref_name=args[1];
Document doc = DomHelper.getDoc(web_xml_filename);
Element rootNode=doc.getDocumentElement();
newNode = doc.createElement("resource-ref"); 
DomHelper.createElement(doc, newNode, "res-ref-name", res_ref_name);
DomHelper.createElement(doc, newNode, "res-type", "javax.sql.DataSource");
DomHelper.createElement(doc, newNode, "description", description);
DomHelper.createElement(doc, newNode, "res-auth", "Container");
rootNode.insertBefore(newNode, nodes.item(0));
DomHelper.writeDoc(doc, web_xml_filename, false);
要从ant调用,请使用groovy任务:-

<groovy src="${e5ahr-groovy.dir}/addResoureRefToJBossWebXML.groovy" classpath="${groovy.dir}">
    <arg value="${jboss-web.xml}"/>
    <arg value="jdbc/somesource/>
    <arg value="java:jdbc/somesource"/>
</groovy>

你可以用。模式和表达式选项不允许使用少于或多于,但可以用HTML实体替换。例如:

<replaceregexp byline="true">
    <!-- In config.xml this looks like <myVariable></myVariable> -->
    <regexp pattern="&lt;myVariable&gt;(.*)&lt;/myVariable&gt;" />
    <substitution expression="&lt;myVariable&gt;${myVariable.value}&lt;/myVariable&gt;" />
        <fileset dir="${user.dir}">
            <include name="config.xml" />
        </fileset>
</replaceregexp>

您能为您的问题添加更多细节吗?将有可能给出一个不那么笼统的答案。