我有一个 ant 属性 ${src.dirs} ,其中包含一个用分号分隔的目录列表。现在我需要指定文件集(用于替换正则表达式),并且该文件集必须包含 ${src.dirs} 中列出的所有目录中的所有 java 文件。我该怎么做(我不使用任何 ant-contrib 时髦的东西,我使用普通的香草蚂蚁)。
有这种src.dirs
形式: /usr/work/dir1/src;/usr/work/java/dir2/src;/usr/libabc/src
有一个关于如何使用propertyregex的例子,但是当我尝试使用它时,我得到了这个错误:
build.xml:98: Problem: failed to create task or type propertyregex
编辑: 这是我的最终解决方案:
<loadresource property="source.dir.javafiles">
<propertyresource name="source.dir"/>
<filterchain>
<tokenfilter>
<replaceregex pattern="\s*([;,]\s*)*$" replace="/**/*.java"/>
<replaceregex pattern="\s*([;,]\s*)+" replace="/**/*.java," flags="g"/>
</tokenfilter>
</filterchain>
</loadresource>
<fileset dir="" includes="${source.dir.javafiles}"/>
这些正则表达式确保尾随的逗号或分号不会产生错误的文件选择器。