我试图在循环中使用Ant任务<loadfile>
来解析文件的内容。我有类似的东西Ant loadfile覆盖属性
<loadfile srcFile="@{some.input}" property="my.property">
由于Ant属性是不可变的,所以这对我不起作用。我需要'my.property'来更新每一次迭代。有没有办法做到这一点?我知道Ant-contrib有一个<var>
任务,但我不确定如何使用<loadfile>
。
任何建议?
谢谢。
我试图在循环中使用Ant任务<loadfile>
来解析文件的内容。我有类似的东西Ant loadfile覆盖属性
<loadfile srcFile="@{some.input}" property="my.property">
由于Ant属性是不可变的,所以这对我不起作用。我需要'my.property'来更新每一次迭代。有没有办法做到这一点?我知道Ant-contrib有一个<var>
任务,但我不确定如何使用<loadfile>
。
任何建议?
谢谢。
该Ant plugin Flaka提供一个让任务,允许覆盖现有的属性或变量像=
<project xmlns:fl="antlib:it.haefelinger.flaka">
<property name="my.property" value="value"/>
<fl:let> my.property ::= 'anothervalue'</fl:let>
</project>
所以没必要取消设置首先,然后设置。顺便说一句。 Flaka还有一个未设置的任务;-)
我刚刚结束了使用由羚羊 提供的<unset>
任务http://antelope.tigris.org/
Ant contrib也有一个var任务,取消设置。
Lucks:按照约定接受其中一个答案,以便人们知道问题已解决。我建议你接受吉尔伯特,因为他首先发布正确的答案。
<loadfile property="foo" srcfile="bar.txt"/>
... do some actions, perhaps in a <for> loop ...
<var name="foo" unset="true"/>
然后,您可以在<loadfile>
澄清var任务是在AntContrib的东西,它与标准属性一起工作。 – 2011-12-26 23:23:03
这工作得很好!我在'
其中之一是能够覆盖的属性值是script
内置的任务再次使用foo
。
下面是一个脚本和证明属性值更改的输出。
<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
你尝试在ANT脚本。
<script language="javascript">
project.setProperty("my.property", "somevalue");
</script>
你可以为每个SRCFILE创建您的MacroDef一个新的属性:
<loadfile srcFile="@{some.input}" property="@{some.input}_Prop">
<echo message="@{some.input} Contents: ${@{some.input}_Prop}"/>
不太您的问题,而是:令人惊讶的在我的ENV(蚂蚁1.9.4)**'<研究loadFile SRC = “......”encoding =“...”/>'确实重写了一个在其内部定义了两次的属性** :-(不幸的是,这导致了一些针对测试系统的prod更改!显然在同一个文件中重写作为默认设置: -/ – 2018-02-15 08:43:02