當我使用路徑引用ID時,Ant似乎在任何任務運行之前評估定義內的任何變量。例如,下面的${common.dist}
和${common.lib}
似乎在任何任務運行之前進行評估。Ant路徑引用何時設置?
<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>
如果我複製路徑引用到編譯目標內部的classpath元素的膽量,事情似乎很好地工作。
謝謝。我將屬性定義從目標中移出並在路徑定義的上方運行。 – braveterry 2013-04-05 12:16:50