为什么我不能在ant(1.8.1)上使用目标之外的继承引用?

时间:2013-04-02 09:08:55

标签: ant reference

我想要做的就是在父build.xml上设置对路径的引用,并在子build.xml上使用它(使用<ant>调用)。这是我可以创建的最简单的例子:

集结parent.xml

<?xml version="1.0"?>
<project name="parent" default="do-parent">
    <target name="do-parent">
        <path id="inherited.path"/>
        <ant antfile="build-child.xml" inheritrefs="false" inheritall="false">
            <reference refid="inherited.path"/>
        </ant>
    </target>
</project>

集结child.xml

<?xml version="1.0"?>
<project name="child" default="do-child">
    <pathconvert property="converted.path" refid="inherited.path"/>
    <target name="do-child"/>
</project>

我跑ant.bat -f build-parent.xml 并获取:引用inherited.path not found。

如果我将 build-child.xml 更改为:

<?xml version="1.0"?>
<project name="child" default="do-child">
    <target name="do-child">
        <pathconvert property="converted.path" refid="inherited.path"/>
    </target>
</project>

工作正常......

显然,我可以通过多种方式解决这个问题,但我想以正确的方式做到这一点。我做错了什么?

1 个答案:

答案 0 :(得分:2)

之前遇到过此行为:

Passing References from Master Build File to Child

我无法找到任何暗示此行为是否符合设计的内容。