我的情况是,我们正在生成一个Ant <path>
,其中可能包含一些实际上不存在的目录。不幸的是,这会被输入bnd
,如果路径中的任何内容丢失,它就会爆炸。
所以我想要的是一种过滤<path>
的方法,只保留那些实际存在的路径元素。
在Ant中有一种简单的方法可以说这个,还是我必须写一个任务?
答案 0 :(得分:0)
我相信我找到了答案:
<path id="bnd.cp.existing">
<restrict>
<path refid="bnd.cp"/>
<exists/>
</restrict>
</path>
<!-- To see when it happens, add the following: -->
<echo message="bnd classpath is: ${toString:bnd.cp.existing}"/>
<iff>
<not>
<equals arg1="${toString:bnd.cp.existing}"
arg2="${toString:bnd.cp}"/>
</not>
<then>
<echo message=" trimmed from: ${toString:bnd.cp}"/>
</then>
</iff>
限制操作可以将path-like structure
作为输入并返回其应用请求的过滤的版本 - 在这种情况下,仅保留实际存在的路径元素。然后将其重新绑定到新ID以供<bnd>
操作使用。