ANT脚本。使用另一个文件中的值替换一个文件中的动态值

时间:2013-05-23 09:08:53

标签: xml dynamic ant

我需要一些帮助来替换动态值。我是ant脚本的新手,需要一些帮助。

我目前在服务器上有一个文件,它将保存特定于该服务器的属性。即数据库连接细节

ydkprefs.dbClassName=com.ibm.db2.jcc.DB2Driver
ydkprefs.dbType=DB2
ydkprefs.dbURL=jdbc:db2://localhost:50000/application
ydkprefs.dbschema=SCHEMA
ydkprefs.dbUsername=db2inst1

然后我有一个带动态属性的模板xml文件,即

 <Database Name=${dbName} className="${dbClassName}"
                dbType="${dbType}" folder=""
                jdbcURL="${dbURL}"
                schema="${dbschema}" user="${dbUsername}"/>

我浏览了很多网站,但我并不是更聪明。最有希望的信息。我发现唯一可以工作的是替换ant脚本本身中声明的单个值。

1 个答案:

答案 0 :(得分:1)

如果您可以更改属性文件和/或模板以使属性文件中的属性名称​​完全与要在目标文件中替换的占位符匹配,那么您可以

<copy file="template.xml" tofile="target.xml" encoding="UTF-8">
  <filterset begintoken="$${" endtoken="}" filtersfile="db.properties" />
</copy>

为了生成格式良好的XML输出,您还需要确保属性 values 在必要时正确地进行XML转义,例如:如果您需要在值中使用&字符,那么它必须在属性文件中为&amp;