【问题标题】:Exclude fileset from another fileset using a property使用属性从另一个文件集中排除文件集
【发布时间】:2014-07-15 19:33:14
【问题描述】:

我最近几乎只使用 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>

想象这是在多个项目使用的一些旧构建系统中。我想排除文件集中的其他内容(例如,目录“bar”中的文件,类似于“foo”),但由于这是多个项目使用的东西,我不能只将自定义排除项放入构建系统.我需要一些方法来插入那个额外的文件集(它可能包含多个排除项)。

这样做的最佳方法是什么?我想我会在 my 构建中设置一个属性,其中包含要排除的文件,但是当该属性丢失时,some-operation 目标必须优雅地处理它。但是,如果我将文件集设置为属性,我不太确定如何将其从 some-operation 中的原始文件集中排除。

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

【问题讨论】:

    标签: ant


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2014-12-19
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      相关资源
      最近更新 更多