2012-02-09 6 views
6

kullanıyorum ANT 1.7.0 kullanıyorumKarıncadaki bir mülke nasıl bir dize eklerim?

Arama sırasında bir dize (özellikte kayıtlı) metin ekleyecektir bir hedef oluşturmak istiyorum. örneğin

:

<property name="str.text" value="" /> 

<target name="append.to.property" > 
    <property name="temp.text" value="${str.text}${new.text}" /> 
    <property name="str.text" value="${temp.text}" /> 
</target> 

sorun Bir hedef özellik değeri üzerine ve başka bir hedef değişen değeri okuyamaz olmasıdır.

Karıncadaki bir özelliğe nasıl bir dize eklerim?

+1

olası yinelenen (http [karınca tesise aşırı-yazma Nasıl?]: // stackoverflow. com/sorular/1866729/how-to-over-yazma-mülk-in-karınca) – skaffman

cevap

11

Mülkte bulunan mülkün değerini değiştiremezsiniz.

Değiştirilebilir özellikler sağlayan Ant Contrib değişken görevi (bkz. http://ant-contrib.sourceforge.net/tasks/tasks/variable_task.html) kullanabilirsiniz. karınca

<property name="str.text" value="A" /> 
<property name="new.text" value="B"/> 

<target name="append.to.property" > 
    <var name="temp.text" value="${str.text}${new.text}" /> 
    <var name="str.text" value="${temp.text}" /> 
</target> 

<target name="some.target" depends="append.to.property"> 
    <echo message=${str.text}/> 
</target> 
1

Normalde özellikleri değişmez bir kez ayarlanmış. Ant addon Flaka ile değiştirmek veya Mevcut bir özelliği üzerine yazabilir - hatta UserProperties (komut -Dkey = değer üzerinden ayarlanır olanlar özellikleri), yani bir macrodef oluşturup bunu böyle kullanın:

<project name="demo" xmlns:fl="antlib:it.haefelinger.flaka"> 

<property name="foo" value="bar"/> 

<macrodef name="createproperty"> 
    <attribute name="outproperty"/> 
    <attribute name="input"/> 
    <sequential> 
    <fl:let> @{outproperty} ::= '@{input}'</fl:let> 
    </sequential> 
</macrodef> 

<!-- create new property --> 
<createproperty input="${foo}bar" outproperty="fooo"/> 

    <echo>$${fooo} => ${fooo}</echo> 

    <echo>1. $${foo} => ${foo}</echo> 

<!-- overwrite existing property --> 
<createproperty input="foo${foo}" outproperty="foo"/> 

    <echo>2. $${foo} => ${foo}</echo> 

</project> 

çıkış

[echo] ${fooo} => barbar 
[echo] 1. ${foo} => bar 
[echo] 2. ${foo} => foobar 

alternatif olarak, bazı komut dosyası dilini (Groovy, Javascript, JRuby ..) kullanabilir ve bir özelliğin üzerine yazmak için ant api:
project.setProperty(String name, String value) kullanabilirsiniz.

0

Mevcut özellik değerinde bir dize eklemek istediğinizi varsayalım aşağıdaki adımları izleyin.

  1. İçindeki değeri değiştirmek için ihtiyacımız olan özellik dosyasını yüklememiz gerekiyor.
  2. ANT özellik görevini kullanarak geçici özellikteki dosyadan varolan özellik değerini alın.
  3. Ardından, Özellik değerini değiştirmek için normal işlemi yapın. Referans için 4Final Property value

    3ANT Script 1Property file 1 2string to append

: ait Wordpress Link