首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant将属性值替换为xml文件中的属性名。

Ant将属性值替换为xml文件中的属性名。
EN

Stack Overflow用户
提问于 2015-03-31 05:49:16
回答 2查看 1.5K关注 0票数 0

我需要使用属性名替换xml文件中的属性值。

例如:

代码语言:javascript
复制
<property name="test-name" value="default-value"/>

我有一个目标来替换这个值。即"default-value".用户可以多次运行这个目标,如果给属性test-name分配了一个错误的值,他可以尝试使用正确的值再次运行目标。因此,我不能使用正则表达式来替换"default-value"。我只能依靠财产名称。是否有一种方法可以在ant中使用它的名称来替换属性值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 10:25:41

由于我希望允许用户多次替换值(如果他/她给错了值),所以我想出了以下解决方案,

代码语言:javascript
复制
           <replaceregexp
                    replace="property name=&quot;my.propertyKey&quot; 
                    value=&quot;user.value&quot;"
                    byline="true" file="${basedir}/test.xml">
                <regexp pattern="property name=&quot;my.property&quot; 
                    value=&quot;(.*)&quot;"/>
            </replaceregexp>

使用属性键搜索属性并替换整行。

票数 0
EN

Stack Overflow用户

发布于 2015-03-31 09:06:07

在Ant中,典型的方法是复制或移动要更改的文件,使用FilterSet来定义要在文件中替换的令牌值对。

因此,在文件的“模板”版本中,您可能有如下所示

代码语言:javascript
复制
<document>
    <element value="@test-name@"/>
</document>

在您的构建文件中,您可能有这样的内容:

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29361447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档