ant - 是否可以拥有包含多个源目录的文件集?

标签 ant

我有一些像这样的 Ant 逻辑:

<copy todir="src_@{version}" flatten="true">
    <fileset dir="${generic-libs.source}\prolo">
        <include name="**/*.c"/> <!-- all .c files including subfolders -->
        <include name="**/*.h"/> <!-- all .h files including subfolders -->
        <exclude name="**/test/*.*" /> <!-- exclude test (sub)folders -->
        <exclude name="**/test*.*" /> <!-- exclude remaining test sources -->
    </fileset>
    <fileset dir="${generic-libs.source}\genlo">
        <include name="**/*.c"/>
        <include name="**/*.h"/>
        <exclude name="**/test/*.*" />
        <exclude name="**/test*.*" />
    </fileset>
    <fileset dir="${generic-libs.source}\ptclo">
        <include name="**/*.c"/>
        <include name="**/*.h"/>
        <exclude name="**/test/*.*" />
        <exclude name="**/test*.*" />
    </fileset>
    ...
</copy>

...还有 10 个以上相同的结构。

文件集标签的内容总是相同的,所以我想必须有一种方法来缩短它?

最佳答案

Ant 1.9.4 推出 multirootfileset为了这个目的 :

A new resourcecollection type acts like a union of <fileset>s and <dirset>s that share the same configuration but have different base directories.

在你的情况下,类似:

<multirootfileset basedirs="${generic-libs.source}\prolo,${generic-libs.source}\genlo,${generic-libs.source}\ptclo">
 <include name="**/*.c"/>
 <include name="**/*.h"/>
 <exclude name="**/test/*.*"/>
 <exclude name="**/test*.*"/>
</multirootfileset>

关于ant - 是否可以拥有包含多个源目录的文件集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25992260/

相关文章:

java - 升级操作系统后使我的ANT版本无法正常工作的问题

ant - 如何将文件集中的所有文件添加为 exec 任务的参数?

android - 自定义部分 Android Manifest

java - 在 Eclipse 中构建 Ant 时出现 SocketTimeoutException

java - 通过 ant macrodef 传递变量命令行参数

ant - 如何为此 tar 命令构建 Ant TarTask?

java - JVMCFRE003 错误的主要版本

java - ant jar的主类

java - Ant 中的目标覆盖

ant - 尝试使用 Fuse 挂载 HDFS。无法编译 libhdfs