当我使用路径引用 ID 时,Ant 似乎会在任何任务运行之前评估定义中的任何变量。例如,${common.dist}
以下${common.lib}
似乎在任何任务运行之前进行评估。
<path id="compile.classpath">
<fileset dir="lib">
<include name="*.jar" />
</fileset>
<fileset dir="${common.dist}">
<include name="*.jar" />
</fileset>
<fileset dir="${common.lib}">
<include name="*.jar" />
</fileset>
</path>
在 Ant 输出中,我看到如下内容:
Adding reference: compile.classpath
Property "common.dist" has not been set
Property "common.lib" has not been set
...
Build sequence for target(s) `package' is [...]
Complete build sequence is [...]
这使得在运行任何目标之前似乎正在处理路径引用。
我有一个这样的编译目标:
<target name="compile" depends="init,common">
<javac destdir="build/classes" debug="true" deprecation="true" optimize="true">
<src path="src/java" />
<classpath>
<path refid="compile.classpath" />
</classpath>
</javac>
</target>
如果我将路径引用的内容复制到编译目标内的类路径元素中,事情似乎工作正常。