gpt4 book ai didi

ant - 使用 ANT 替换 xml 文件中的属性

转载 作者:行者123 更新时间:2023-12-04 11:28:28 24 4
gpt4 key购买 nike

我正在尝试使用 ANT 脚本替换 build.xml 文件中的版本号。

我尝试了各种方法,搜索并重新搜索 StackOverflow 以获得答案,但无法获得确切的查询。

所以这是我的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<project name="feature" default="main" basedir=".">
<target name="init">
<property name="Version" value="1.0.0.20120327"/>
</target>

<target name="main" depends="init">
<description>Main target</description>
</target>
</project>

现在你可以看到版本有昨天的日期。我需要用当前日期替换它。

这是我尝试过的:
<target name="replace">
<tstamp >
<format property="touch.time" pattern="yyyyMMdd"/>
</tstamp>

<property name="Feature.dir" location="../feature" />

<!--Didnt Work-->
<copy file="${Feature.dir}\build.xml" tofile="${Feature.dir}\build1.xml"
filtering="yes" overwrite="yes">
<filterset>
<filter token="Version" value="1.0.0.${touch.time}"/>
</filterset>
</copy>

<!--Didnt work

<replacetoken><![CDATA[<property name="Version" value=""/>]]>
</replacetoken>
<replacevalue><![CDATA[<property name="Version"value="1.0.0.${touchtime}" />]]>
</replacevalue>

-->


<!-- Didnt work
<copy file="${Feature.dir}/build.xml" tofile="${Feature.dir}/build1.xml" >
<filterchain>
<tokenfilter>
<replaceregex pattern="^[ \t]*Version[ \t]*=.*$"
replace="Version=1.0.0.${touch.time}"/>
</tokenfilter>
</filterchain>
</copy>
-->
</target>

最佳答案

我会用 replaceregex里面filterchain .

例如:

<copy file="${Feature.dir}\build.xml" tofile="${Feature.dir}\build1.xml"       
filtering="yes" overwrite="yes">
<filterchain>
<tokenfilter>
<replaceregex pattern="1.0.0.[0-9.]*" replace="1.0.0.${touch.time}"/>
</tokenfilter>
</filterchain>
</copy>

如果要替换文件,请随意复制到临时文件并将其移回。
<tempfile property="build.temp.file.name"/>
<copy file="${Feature.dir}\build.xml" tofile="${build.temp.file.name}" ... />
<move file="${build.temp.file.name}" tofile="${Feature.dir}\build.xml" />

关于ant - 使用 ANT 替换 xml 文件中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com