Ant 使用属性从另一个文件集中排除文件集

Ant 使用属性从另一个文件集中排除文件集,ant,Ant,最近,我几乎完全使用Gradle,但时不时地,我不得不回到我们陈旧的ant构建系统中,找出如何做一些事情。然后我意识到我对ant知之甚少,甚至有些最简单的任务看起来也很难 例如,我有一个对文件集执行某些操作的目标: <target name="some-operation"> <fileset dir="blah" id="stuff"> <filename name="**/*.txt" /> <not>

最近,我几乎完全使用Gradle,但时不时地,我不得不回到我们陈旧的ant构建系统中,找出如何做一些事情。然后我意识到我对ant知之甚少,甚至有些最简单的任务看起来也很难

例如,我有一个对文件集执行某些操作的目标:

<target name="some-operation">

    <fileset dir="blah" id="stuff">
        <filename name="**/*.txt" />
        <not>
            <filename name="**/foo/*" />
        </not>
    </fileset>

    <!-- do some operations on "stuff" -->

</target>
假设这是在多个项目使用的某个旧构建系统中。我想排除文件集中的其他东西,比如说,目录栏中的文件,类似于foo,但由于这是多个项目使用的东西,我不能只将自定义排除放在构建系统中。我需要一些方法来插入其中可能包含多个排除项的附加文件集

最好的方法是什么?我想我会在构建中设置一个包含要排除的文件的属性,但是当该属性丢失时,某些操作目标将不得不优雅地处理它。但是,如果我将文件集设置为属性,我不太确定如何在某些操作中将其从原始文件集中排除

有什么最好/最干净的方法吗?

为了重用,创建一个包含1-n个文件集的嵌套元素,以提高灵活性。 请参见提供使用嵌套元素的宏定义示例