从文件中搜索令牌并替换另一只蚂蚁

时间:2012-11-21 12:44:37

标签: ant

我有一个toke文件“xpressionProperty.txt”,它具有如下的键值对。

MQ_QUEUE_MANAGER=QM_XPN
MQ_HOSTNAME=10.12.49.17
MQ_PORT=5551
MQ_CHANNEL=CHNL.XPN
MQ_USERID=mqm
MQ_PASSWORD=abc
INPUT_QUEUE1=PREPROCESSOR.QP1
INPUT_QUEUE2=PREPROCESSOR.QP2
ERROR_QUEUE=ERROR.QP1

我的属性文件是“Queue.properties”,其值低于值。

MQ_QUEUE_MANAGER=${MQ_QUEUE_MANAGER}
MQ_HOSTNAME=${MQ_HOSTNAME}
MQ_PORT=${MQ_PORT}
MQ_CHANNEL=${MQ_PORT}
MQ_USERID=${MQ_USERID}
MQ_PASSWORD=${MQ_PASSWORD}
INPUT_QUEUE1=${INPUT_QUEUE1}
INPUT_QUEUE2=${INPUT_QUEUE2}
ERROR_QUEUE=${ERROR_QUEUE}

当我运行ant命令时,Queue.properties文件应该使用xpressionProperty.txt文件中的实际值进行更新。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

看看filtersets and filters

Queue.properties文件复制到其他地方:

<copy file=${queue.properties.file}
   todir="${target.dir}">
   <filterset begintoken="${"
       endtoken="}"
       filterfile="${xpression.property.file}"/>
</copy>

这将使用“xpressionProperty.txt”中的值替换Queue.properties中的参数。

顺便说一下,我会在${foo}文件中仅使用@foo@替换Queue.properties语法。然后,您不必指定begintokenendtoken参数。此外,这是人们期望看到的替代价值。

警告:请勿将其替换为替换。有一个<replace>任务与此非常相似,但会直接修改Queue.properties。这意味着您的Queue.properties文件将丢失其替换值,如果有人提交更改,您将在需要再次执行此操作时丢失它们。