gpt4 book ai didi

java - 扩展现有的 Ant 路径标签

转载 作者:搜寻专家 更新时间:2023-11-01 03:48:04 27 4
gpt4 key购买 nike

是否可以扩展 ant 构建文件中的现有路径标记?例如,我想扩展:

<path id="project.classpath">
<pathelement path="build/classes" />
</path>

使用新的 path=module/lib。因此结果等同于:

<path id="project.classpath">
<pathelement path="build/classes" />
<pathelement path="module/lib" />
</path>

最佳答案

如果你尝试这样的事情,你不能直接扩展现有路径:

<path id="project.classpath">
<pathelement path="build/classes" />
</path>

<path id="project.classpath">
<pathelement path="${ant.refid:project.classpath}" />
<pathelement path="module1/lib" />
</path>

由于您试图同时读取和设置路径的“循环性”,它将失败。

你可以通过添加一个额外的步骤来打破圆圈来做你想做的事。在每次设置路径之前,将当前值存储在一个 <string> 中资源:

<path id="cp">
<pathelement path="build/classes" />
</path>
<echo message="${ant.refid:cp}" />

<string id="cps" value="${toString:cp}" />
<path id="cp">
<pathelement path="${ant.refid:cps}" />
<pathelement path="module1/lib" />
</path>
<echo message="${ant.refid:cp}" />

<string id="cps" value="${toString:cp}" />
<path id="cp">
<pathelement path="${ant.refid:cps}" />
<pathelement path="module2/lib" />
</path>
<echo message="${ant.refid:cp}" />

运行时产生类似这样的东西:

[echo] /ant/path/build/classes
[echo] /ant/path/build/classes:/ant/path/module1/lib
[echo] /ant/path/build/classes:/ant/path/module1/lib:/ant/path/module2/lib

您正在重新分配 id每次都走不同的路。通常这是一个坏主意,因为您无法确定构建中每个点使用的路径:因此请谨慎使用。

关于java - 扩展现有的 Ant 路径标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38145559/

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