我需要使用属性名替换xml文件中的属性值。
例如:
<property name="test-name" value="default-value"/>我有一个目标来替换这个值。即"default-value".用户可以多次运行这个目标,如果给属性test-name分配了一个错误的值,他可以尝试使用正确的值再次运行目标。因此,我不能使用正则表达式来替换"default-value"。我只能依靠财产名称。是否有一种方法可以在ant中使用它的名称来替换属性值?
发布于 2015-03-31 10:25:41
由于我希望允许用户多次替换值(如果他/她给错了值),所以我想出了以下解决方案,
<replaceregexp
replace="property name="my.propertyKey"
value="user.value""
byline="true" file="${basedir}/test.xml">
<regexp pattern="property name="my.property"
value="(.*)""/>
</replaceregexp>使用属性键搜索属性并替换整行。
发布于 2015-03-31 09:06:07
在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>https://stackoverflow.com/questions/29361447
复制相似问题