ANT可以更改XML文件中的值吗?

时间:2012-05-04 12:53:20

标签: java spring ant

ANT可以更改XML文件中的值吗?

我正在研究Java,Spring系统,在XML文件中我们有服务器名称,用户名和密码之类的东西,这些东西必须为我们推广系统的每个环境改变。我想让ANT脚本提示SA提示服务器名称,用户名,然后替换xml文件中的值。

4 个答案:

答案 0 :(得分:3)

我曾经有像@ someProperty @这样的占位符并进行直接搜索和替换,但您可以使用XmlTask。我们用它来改变EAR的上下文根 - 由于XML命名空间无意义,它不是很漂亮:

<xmltask source="META-INF/application.xml"  report="true" failwithoutmatch="true" dest="META-INF/application.xml">
     <replace path="//*[local-name()='application']//*[local-name()='module'][@id='WebModule_XXXX']//*[local-name()='web']//*[local-name()='context-root']/text()" withText="${contextRoot}"/>
</xmltask>

但是为了改变你想要的东西,我们现在使用Spring 3.1配置文件,我们所做的就是在属性文件中切换环境配置文件。我们有单独的开发配置文件,automatic-uat,qa&amp;生产

答案 1 :(得分:2)

查看Ant replace task字符串替换,只需为占位符选择合适的字符串。

input task可用于收集所需的值。

答案 2 :(得分:1)

您还可以考虑从PropertyPlaceholderConfigurator加载Spring xml文件中的属性。然后,您可以将属性保存在标准的Java .properties文件中,并在通过层升级项目时编辑它。这里有一个不错的例子:example

答案 3 :(得分:0)

您可以使用Guillaume Polet评论所指示的ant过滤器。我跟着它一样,它解决了我的问题。有关详细信息,请参阅https://ant.apache.org/manual/Tasks/filter.html