[英]Ant replace property value by property name in a xml file
我需要使用属性名称替换xml文件中的属性值。
例如:
<property name="test-name" value="default-value"/>
我有一个替换该值的目标。 即"default-value"
。 如果用户给属性test-name
赋予了错误的值,则用户可以多次运行该目标,然后可以尝试使用正确的值再次运行目标。 因此,我不能使用正则表达式替换"default-value"
。 我只能依靠属性名称。 有没有一种方法可以使用ant中的名称替换属性值?
在Ant中执行此操作的典型方法是使用FilterSet定义要在文件中替换的标记值对,以复制或移动要更改的文件。
因此,在文件的“模板”版本中,您可能会有类似的内容
<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>
由于我想允许用户多次替换值(如果他/她输入了错误的值),我想出了以下解决方案,
<replaceregexp
replace="property name="my.propertyKey"
value="user.value""
byline="true" file="${basedir}/test.xml">
<regexp pattern="property name="my.property"
value="(.*)""/>
</replaceregexp>
这会使用属性键搜索属性并替换整行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.