0

我在我的有一个属​​性和目标build.xml

<property name="somedir" value="path/to/dir/${prop}"/>
<echo message="${prop}"/>

<target name="foo">
  <echo message="Property:  ${somedir}"/>
</target>

build.xml我运行的目录中:

ant -Dprop="someVal" foo

这得到了回应:

[echo] someVal
[echo] Property:  path/to/dir/

什么${prop}时候foo被调用?foo调用时如何使值保持不变?

提前致谢!

4

3 回答 3

0

我试图覆盖一个不可变的预定义属性build.xml......这更符合我正在尝试做的事情:

  <project>
    <property name="basedir" value="/usr/me/${prop}"/>
    <echo message="${basedir}"/>
  </project>

回声:

Buildfile: build.xml

     [echo] /usr/me

BUILD SUCCESSFUL
Total time: 0 seconds

掌心

于 2013-06-06T14:03:39.720 回答
0

我无法重现您的问题。您使用的是哪个版本的 ANT?

构建.xml

<project name="demo" default="foo">
  <property name="somedir" value="path/to/dir/${prop}"/>
  <echo message="${prop}"/>
  <target name="foo">
    <echo message="Property:  ${somedir}"/>
  </target>
</project>

运行如下:

$ ant -Dprop=hello
Buildfile: /home/me/tmp/build.xml
     [echo] hello

foo:
     [echo] Property:  path/to/dir/hello

ANT 版本:

$ ant -version
Apache Ant(TM) version 1.9.0 compiled on March 5 2013
于 2013-06-04T21:04:07.843 回答
0

我正在使用 Ant 1.8.4 版

我有这个作为我的build.xml

<project>
    <property name="somedir" value="path/to/dir/${prop}"/>
    <echo message="${prop}"/>

    <target name="foo">
        <echo message="Property:  ${somedir}"/>
    </target>
</project>

我明白了:

$ ant -Dprop=foo foo
Buildfile: /Users/david/build.xml
     [echo] foo

foo:
     [echo] Property:  path/to/dir/foo

BUILD SUCCESSFUL
Total time: 0 seconds

我必须将<project>and</project>放入 build.xml 中,否则它不会执行。

有什么我想念的吗?它似乎工作正常。

于 2013-06-05T01:34:50.313 回答