我最近几乎只使用Gradle,但时不时地我不得不回到我们陈旧的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"),但由于这是多个项目使用的东西,我不能只是把我的自定义排除到构建系统中。我需要某种方法来插入额外的文件集(它可能包含多个排除项)。
做这件事的最好方法是什么?我想我会在我的构建中设置一个属性,以排除文件,但是当该属性丢失时,some-operation
目标将不得不优雅地处理它。但是,如果我将文件集设置为属性,我不太确定如何将其从some-operation
中的原始文件集中排除。
有什么最好/最干净的方法吗?
为了重用,创建一个包含1-n个文件集的嵌套元素的macrodef。