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>/" $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> |