我自己找到了以下可行的解决方案,尽管尝试了其他选项,例如通过IVY java解析ivy.xml等。
<target name="autoincrementivy" depends="prompt-user.password"> <exec executable="svn" failonerror="${svn.failonerror}"> <arg value="--non-interactive"/> <arg value="--trust-server-cert"/> <arg value="--username"/> <arg value="${svn.user}"/> <arg value="--password"/> <arg value="${svn.password}"/> <arg value="checkout"/> <arg value="--depth"/> **<arg value="immediates"/>** <arg value="${svn.repository}/@{module.name}/trunk"/> <arg value="${temp.checkout.dir}/@{module.name}"/> </exec><move file="${temp.checkout.dir}/ivy.xml" tofile="${temp.checkout.dir}/ivy_src.xml"/><ant target="changeVersion" antfile="../deploy.xml" > <property name="dest.file" value="${temp.checkout.dir}/ivy.xml"/> <property name="src.file" value="${temp.checkout.dir}/ivy_src.xml"/> <property name="target.version" value="${tag.version}"/></ant><!-- cehckin the file--></target>上面的任务是将文件检出到带有.svn文件夹的临时文件夹中,以便cehckin可以正常工作。
<target name="changeVersion"> <xmltask source="${src.file}" dest="${dest.file}" preserveType="true" > <replace path="/ivy-module/info/@revision" withText="${target.version}" /> <replace path="/ivy-module/dependencies/dependency[@name='my-common']/@rev" withText="${target.version}" /> <replace path="/ivy-module/dependencies/dependency[@name='my-gui-common']/@rev" withText="${target.version}" /> </xmltask> <fixcrlf file="${src.file}" eol="cr" /> </target>以上目标用于解析和更改版本。



