Ant 在 xml 文件中用 属性 名称替换 属性 值
Ant replace property value by property name in a xml file
我需要使用 属性 名称替换 xml 文件中的 属性 值。
例如:
<property name="test-name" value="default-value"/>
我有一个目标来替换这个值。即 "default-value"
。如果 属性 test-name
的值错误,用户可以多次 运行 这个目标,他可以用正确的值重试 运行ning 目标。因此我不能使用正则表达式来替换 "default-value"
。我只能靠属性名。有没有办法使用它在 ant 中的名称替换 属性 值?
在 Ant 中执行此操作的典型方法是复制或移动要更改的文件,使用 FilterSet 定义文件中要替换的标记值对。
所以在你的 "template" 版本的文件中你可能有这样的东西
<document>
<element value="@test-name@"/>
</document>
在你的构建文件中你可能有这样的东西:
<property name="my.value" value="default-value"/>
<copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt" override="true">
<filterset>
<filter token="test-name" value="${my.value}"/>
</filterset>
</copy>
因为我想让用户多次替换值(如果 he/she 给出了错误的值)我想出了以下解决方案,
<replaceregexp
replace="property name="my.propertyKey"
value="user.value""
byline="true" file="${basedir}/test.xml">
<regexp pattern="property name="my.property"
value="(.*)""/>
</replaceregexp>
这将搜索 属性,使用 属性 键并替换整行。
我需要使用 属性 名称替换 xml 文件中的 属性 值。
例如:
<property name="test-name" value="default-value"/>
我有一个目标来替换这个值。即 "default-value"
。如果 属性 test-name
的值错误,用户可以多次 运行 这个目标,他可以用正确的值重试 运行ning 目标。因此我不能使用正则表达式来替换 "default-value"
。我只能靠属性名。有没有办法使用它在 ant 中的名称替换 属性 值?
在 Ant 中执行此操作的典型方法是复制或移动要更改的文件,使用 FilterSet 定义文件中要替换的标记值对。
所以在你的 "template" 版本的文件中你可能有这样的东西
<document>
<element value="@test-name@"/>
</document>
在你的构建文件中你可能有这样的东西:
<property name="my.value" value="default-value"/>
<copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt" override="true">
<filterset>
<filter token="test-name" value="${my.value}"/>
</filterset>
</copy>
因为我想让用户多次替换值(如果 he/she 给出了错误的值)我想出了以下解决方案,
<replaceregexp
replace="property name="my.propertyKey"
value="user.value""
byline="true" file="${basedir}/test.xml">
<regexp pattern="property name="my.property"
value="(.*)""/>
</replaceregexp>
这将搜索 属性,使用 属性 键并替换整行。