如何在Ant的Available命令中使用通配符

我正在使用Ant构建脚本来整理基于Eclipse的应用程序以进行分发。

构建的一个步骤是检查构建文件夹中是否存在正确的库。 我目前使用Ant命令。 不幸的是,每次切换到新的Eclipse构建时我都必须修改脚本(因为版本号已更新)。

我不需要检查版本号,我只需要检查文件是否存在。

那么,我该如何检查:

org.eclipse.rcp_3.5.0.* 

代替:

 org.eclipse.rcp_3.5.0.v20090519-9SA0FwxFv6x089WEf-TWh11 

用Ant?

欢呼,伊恩

你的意思是,像(基于pathconvert任务 ,在这个想法之后 ):

           

使用resourcecount条件的稍微简短且更简单的方法:

           

在大多数情况下,pathconvert任务可能是首选的方法。 但是当目录树非常大并且使用echoproperties任务时,它会产生一些问题。 使用非常大的目录树,pathconvert生成的字符串可能很大。 然后echoproperties喷射巨大的字符串,使输出更难以使用。 我在Linux上使用macrodef,如果目录中有文件,则创建一个设置为“1”的属性:

                  

如果./target_dir/目录中有文件,则执行“test”目标将生成以下echoproperties行:

 [echoproperties] files.exist=1 

“test”的作用:它生成一个临时文件名$ {temp.file},以后可以用作属性文件。 然后它执行macrodef,它调用shell来检查dirPath目录的内容。 如果dirPath中有任何文件或目录,则会在临时文件中为propertyName属性指定值1。 然后它读取文件并设置文件中给出的属性。 如果文件为空,则不定义任何属性。

请注意,如果需要,临时文件可以重新用于后续调用macrodef。 另一方面,当然,一旦设置了属性,它就是不可变的。