我在 Java 6 和 Ant 1.6 上构建良好,但我现在在 Java 7 和 Ant 1.8.4 上并且遇到了一些问题。我已经克服了很多,但有一个我被困住了。
我有一个包含一些常见目标的文件 common.xml (只包含目标 - 没有 xml 版本字符串或项目):
<target name="common_init">
<path id="project.class.path">
... stuff
</path>
</target>
和两个构建文件:buildfile1.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="**/*.java" source="${javac.target}" target="${javac.target}">
<src path="..."/>
<classpath refid="project.class.path"/>
</javac>
</target>
...
</project>
这很好用。但是几乎相同的第二个构建文件给了我错误:
Reference project.class.path not found.
第二个构建文件是:
<?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"...>
非常感谢任何帮助。
保罗