Ant 1.8.4无法从另一个文件解析refid-但Ant 1.6没有问题
我在Java6和Ant1.6上构建的很好,但是现在我在Java7和Ant1.8.4上,遇到了一些问题。我已经克服了不少困难,但有一个我仍然坚持下去 我有一个包含一些常见目标的文件,common.xml(只包含目标-没有xml版本字符串或项目): 第二个生成文件是: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
<?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>