Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 1.8.4无法从另一个文件解析refid-但Ant 1.6没有问题_Ant_Build - Fatal编程技术网

Ant 1.8.4无法从另一个文件解析refid-但Ant 1.6没有问题

Ant 1.8.4无法从另一个文件解析refid-但Ant 1.6没有问题,ant,build,Ant,Build,我在Java6和Ant1.6上构建的很好,但是现在我在Java7和Ant1.8.4上,遇到了一些问题。我已经克服了不少困难,但有一个我仍然坚持下去 我有一个包含一些常见目标的文件,common.xml(只包含目标-没有xml版本字符串或项目): 第二个生成文件是: <?xml version="1.0"?> <!DOCTYPE project [ <!ENTITY common SYSTEM "file:./common.xml"> ]> <p

我在Java6和Ant1.6上构建的很好,但是现在我在Java7和Ant1.8.4上,遇到了一些问题。我已经克服了不少困难,但有一个我仍然坚持下去

我有一个包含一些常见目标的文件,common.xml(只包含目标-没有xml版本字符串或项目):

第二个生成文件是:

<?xml version="1.0"?>
<!DOCTYPE project [
    <!ENTITY common SYSTEM "file:./common.xml">
]>

<project name="proj1" default="main" basedir=".">
    <!-- import common targets using a xml entity definition -->
    &common;
    ...
    <target name="compile" depends="common_init">
        <javac
            srcdir="..." destdir="..." debug="on" deprecation="off" optimize="on" includes="**/MyFile.java" source="${javac.target}" target="${javac.target}">

            <classpath refid="project.class.path"/>
        </javac>
    </target>
    ...

&普通的;
...
...

我认为(抓着稻草)相同的项目名称可能是问题所在,但不是。两个构建文件都是从更高级别的构建文件开始的,使用:

<ant antfile="buildfileX.xml"...>

非常感谢您的帮助


Paul

我在原始帖子中的代码只是伪代码,我忽略了导致问题的关键区别,对此我深表歉意

正在工作的构建文件与我的原始帖子中的一样。失败的那一个也被贴出来了,但它的名称稍有不同:

<project name="proj1" default="main" basedir=".">
    <!-- import common targets using a xml entity definition -->
    &common;
    ...
    <target name="compile" depends="common_init">
        <antcall target="compile1"/>
    </target>

    <target name="compile1" depends="">
        <javac
            srcdir="..." destdir="..." debug="on" deprecation="off" optimize="on" includes="**/MyFile.java" source="${javac.target}" target="${javac.target}">

            <classpath refid="project.class.path"/>
        </javac>
    </target>
    ...
</project>

&普通的;
...
...
因此,Ant 1.6和1.8.4之间肯定发生了变化,任务之间的默认继承发生了变化。做出了多么可笑的改变。它只会给人们(像我这样的人!!)带来麻烦。无论如何,希望这篇文章能帮助其他遇到同样问题的人


Paul

不清楚错误的原因是什么,以及您的修复方法是什么。实际解释构建文件中哪些内容不正确,哪些内容有效,这将非常有帮助。
<?xml version="1.0"?>
<!DOCTYPE project [
    <!ENTITY common SYSTEM "file:./common.xml">
]>

<project name="proj1" default="main" basedir=".">
    <!-- import common targets using a xml entity definition -->
    &common;
    ...
    <target name="compile" depends="common_init">
        <javac
            srcdir="..." destdir="..." debug="on" deprecation="off" optimize="on" includes="**/MyFile.java" source="${javac.target}" target="${javac.target}">

            <classpath refid="project.class.path"/>
        </javac>
    </target>
    ...
<ant antfile="buildfileX.xml"...>
<project name="proj1" default="main" basedir=".">
    <!-- import common targets using a xml entity definition -->
    &common;
    ...
    <target name="compile" depends="common_init">
        <antcall target="compile1"/>
    </target>

    <target name="compile1" depends="">
        <javac
            srcdir="..." destdir="..." debug="on" deprecation="off" optimize="on" includes="**/MyFile.java" source="${javac.target}" target="${javac.target}">

            <classpath refid="project.class.path"/>
        </javac>
    </target>
    ...
</project>