Ant+Shell脚本更新XML文件节点值

刚刚team member有需求要通过Ant脚本更新XML配置文件里的某个值为true或者false。 记录一下实现的过程: 1. 编写shell脚本,文件名为SNMAPIUpdate.sh

#!/bin/sh
if [ $# -ne 2 ];then
echo "usage: SNMAPIUpdate.sh $RFIDIC_HOME $STATUS"
exit 1
fi
RFIDIC_HOME=$1
STATUS=$2
 
echo "Change ITS2.0.2.0APIOnly in $RFIDIC_HOME/etc/RFIDICServer.xml to $STATUS"
 
sed "s/<ITS2.0.2.0APIOnly>.*<\/ITS2.0.2.0APIOnly>/<ITS2.0.2.0APIOnly>$STATUS<\/ITS2.0.2.0APIOnly>/"&nbsp; $RFIDIC_HOME/etc/RFIDICServer.xml > $RFIDIC_HOME/etc/tmp
mv $RFIDIC_HOME/etc/tmp $RFIDIC_HOME/etc/RFIDICServer.xml
rm -f $RFIDIC_HOME/etc/tmp
exit 0

2. 在自定义宏的Ant xml里添加

<target name="Update_SNM_API_To_RFIDICServerXML">
<exec executable="bash">
<arg value="${VIEW_HOME}/EPCIS/test/com.ibm.rfidic.test.base/sh/SNMAPIUpdate.sh"/>
<arg value="${RFIDIC_HOME}" />
<arg value="${STATUS}" />
</exec>
</target>

3. 在build.xml中添加:

<import file="${VIEW_HOME}/EPCIS/test/com.ibm.rfidic.test.base/ant/Component_Interface.xml" />
<antcall target="Add_Test_MQ_To_RFIDICServerXML">
 <param name="STATUS" value="true" />
 </antcall>

Leave a Comment.