2012-02-09 3 views
6

私はANT 1.7.0を使用していますAntのプロパティに文字列を追加するにはどうすればよいですか?

私はコール時にテキストを文字列に追加する(プロパティに保存される)ターゲットを作成したいと思います。例えば

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

問題は、私は1つのターゲットでプロパティ値を上書きし、別の目標に変更された値を読み取ることができないということです。

Antのプロパティに文字列を追加するにはどうすればよいですか?

+1

が重複する可能性(HTTP [アリでプロパティを過剰書くには?]:// stackoverflowの。 com/questions/1866729/how-to-over-write-the-property-in-ant) – skaffman

答えて

11

Antのプロパティの値を変更することはできません。

変更可能なプロパティを提供するAnt Contrib変数タスク(http://ant-contrib.sourceforge.net/tasks/tasks/variable_task.htmlを参照)を使用することができます。

<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

通常、antのプロパティは一度設定すると変更できません。 Ant addon Flakaで 変更またはプロパティをexisiting上書きすること - macrodefを作成し、そのようにそれを使用する、すなわちでもuserproperties(これらのプロパティは-Dkey =値コマンドライン経由で設定):

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

出力

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

また、スクリプト言語(Groovy、Javascript、JRuby ..)を使用し、ant api:
project.setProperty(String name, String value)を使用してプロパティを上書きすることもできます。

0

既存のプロパティ値に文字列を追加する場合は、次の手順を実行します。

  1. 値を変更する必要があるプロパティファイルを読み込む必要があります。
  2. ANTプロパティタスクを使用して、tempプロパティのファイルから既存のプロパティ値を取得します。
  3. 次に、プロパティ値を変更する通常の処理を行います。参考のために4Final Property value

    3ANT Script 1Property file 1 2string to append

:のWordpress Link

関連する問題