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

3
我可以帮您翻译成中文。这里需要在父级 build.xml 中设置一个路径引用,并在通过 <ant> 调用的子级 build.xml 中使用它。下面是我能够创建的最简单的示例:

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

build-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,结果显示:找不到继承路径引用。

如果我将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>

它能很好地运行...

显然,我可以用几种方法解决这个问题,但我希望以正确的方式解决。我做错了什么?


你在这里展示了一种通过从目标中调用解决方案的方法。你所提到的其他几种方式是什么? - Exploring
@Baishakh,我想要的是一种让Ant与build-child.xml的初始版本配合工作的方法。我认为<ant ..>任务上可能有特殊标志或某些命令行选项。 - krico
1个回答

2

我想我所做的只是创建了一个“规范”的例子。如果你使用-d运行“好的情况”,很明显在添加引用之前会解析build-child.xml,因此无法正常工作。 - krico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接