3

<loadfile>Antタスクをループで使用して、ファイルの内容を解析しようとしています。私は次のようなものを持っています

<loadfile srcFile="@{some.input}" property="my.property">

Antプロパティは不変であるため、これは私には機能しません。反復ごとに更新するには、「my.property」が必要です。これを達成する方法はありますか?<var>Ant-contribにタスクがあることは知っていますが、それをどのように使用<loadfile>するかわかりません。

何かお勧めはありますか?

ありがとう。

4

7 に答える 7

7
<loadfile property="foo" srcfile="bar.txt"/>

 ... do some actions, perhaps in a <for> loop ...

<var name="foo" unset="true"/>

fooその後、で再び使用できます<loadfile>

于 2011-06-07T22:30:02.093 に答える
1

AntプラグインFlakaはletタスクを提供し、そのような既存のプロパティまたは変数を上書きできるようにします=

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

<property name="my.property" value="value"/>
<fl:let> my.property ::= 'anothervalue'</fl:let>

</project>

したがって、最初に設定を解除して後で設定する必要はありません。ところで。フラカには未設定のタスクもあります;-)

于 2011-03-19T22:50:22.577 に答える
1

Ant contribには、設定を解除するvarタスクもあります。

ラックス:質問が解決されたことを人々が知っているように、答えの1つを受け入れるのが慣例です。ギルバートが最初に正解を投稿するので、ギルバートを受け入れることをお勧めします。

于 2011-03-21T01:41:19.550 に答える
1

プロパティ値をオーバーライドできる組み込みタスクの1つはですscript

以下は、プロパティ値が変更されたことを証明するスクリプトと出力です。

<project name="test">
  <property name="bshJar" value="C:\lang\java\bsh-1.3.0.jar:C:\lang\java\bsf.jar:C:\lang\java\commons-logging-1.1.1.jar" />
  <property name="a" value="first" />
  <echo>a=${a}</echo>
  <script manager="bsf" language="beanshell" classpath="${bshJar}"><![CDATA[
  project.setProperty("a", "fourth");
  ]]></script>
  <echo>a=${a}</echo>
</project>

出力:

a=first
a=fourth
于 2012-05-23T10:01:17.250 に答える
0

Antelopehttp ://antelope.tigris.org/<unset>が提供するタスク を使用することになりました。

于 2011-03-19T00:07:55.720 に答える
0

ANTでスクリプトを試しましたか。

<script language="javascript">
project.setProperty("my.property", "somevalue");
</script>
于 2013-05-22T11:25:34.640 に答える
0

srcFileごとにMacroDefに新しいプロパティを作成できます。

<loadfile srcFile="@{some.input}" property="@{some.input}_Prop">

<echo message="@{some.input} Contents: ${@{some.input}_Prop}"/>
于 2013-08-12T14:46:34.160 に答える