【发布时间】: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