gpt4 book ai didi

java - Ant 路径引用何时设置?

转载 作者:行者123 更新时间:2023-12-01 18:51:26 25 4
gpt4 key购买 nike

当我使用路径引用 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>

如果我将路径引用的内容复制到编译目标内的类路径元素中,事情似乎工作正常。

最佳答案

目标之外的任何任务都会在每个构建中执行,按照 build.xml 中出现的顺序执行。 ,在运行任何目标之前。如果你想使用 <path> 中的属性在目标外部定义,那么您需要将 <property>任务还定义了目标外部、<path> 之前的属性。如果您需要加载目标中的属性,那么您必须将 <path>也在目标内部定义(可以是相同的定义,也可以是在定义属性的定义之后运行的定义)。

参见this question (和我的回答)了解更多详细信息。

关于java - Ant 路径引用何时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com