2015-03-31 77 views
0

我需要使用屬性名稱替換xml文件中的屬性值。Ant通過xml文件中的屬性名稱替換屬性值

例:

<property name="test-name" value="default-value"/> 

我有一個目標,以取代該值。即"default-value"。用戶可以多次運行該目標,如果他的屬性test-name屬性值不正確,他可以嘗試以正確的值再次運行目標。所以我不能用正則表達式代替"default-value"。我只能依靠物業名稱。有沒有辦法在螞蟻中用它的名字替換屬性值?

回答

0

因爲我想允許用戶多次更換價值(如果他/她給出了錯誤的價值)我想出了以下解決方案,我想出了以下解決方案,

  <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> 

此搜索屬性,使用屬性鍵並替換整個行。

2

在Ant中執行此操作的典型方法是使用FilterSet來定義要在文件中替換的標記 - 值對,以複製或移動要更改的文件。

所以在文件的「模板」的版本,你可能有這樣的事情

<document> 
    <element value="@[email protected]"/> 
</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> 
+1

它不會在原來取代它,它會在副本中取代它。如果在複製操作中使用'override =「true」',那麼每次使用新值時都會被替換。 – sudocode 2015-03-31 10:24:33