我有一个具有以下目标的 ant 构建脚本:
<target name="_initLiveProps">
<property file="buildscripts/live.properties"/>
</target>
<target name="buildLive" depends="_initLiveProps">
<property file="buildscripts/live.properties"/>
</target>
在构建脚本中,我声明了几个路径元素,如下所示:
<path id="project.class.path">
<pathelement location="./../lib/log4j-1.2.16.jar" />
<pathelement location="${product-def.jar}"/>
</path>
product-def.jar 定义在 buildscripts/live.properties 文件中定义为
product-def.jar=./../lib/product-def/live/product-def.jar
当我构建项目(使用 ant buildLive)时,我得到编译错误,主要是因为它找不到 product-def.jar 中定义的类。
我试图打印出类路径,如下所示
<property name="myclasspath" refid="project.class.path"/>
<echo message="${myclasspath}" />
输出结果为c:\product\lib\log4j-1.2.16.jar;c:\product\${product-def.jar}
以上表明以下定义不正确
<pathelement location="${product-def.jar}"/>
定义属性文件中定义的路径元素的正确方法是什么?
编辑
我认为问题在于 project.class.path 的定义是在属性文件加载到 buildLive 目标之前初始化的。有没有办法将 project.class.path 的初始化延迟到 buildLive 目标完成之后?