我正在使用jar
ant 中的任务并希望排除某个目录。目录的结构类似于:
food
|_ fruits
|_ apples
|_ bananas
(已经变得通用并简化了一点)
我有一个像这样的蚂蚁任务:
<jar destfile="Dest.jar">
...
<fileset dir="food">
<exclude name="**/bananas/" />
<exclude name="**/*Test*" />
<include name="**/*.class" />
</fileset>
...
我想做的是:
- 包括以“.class”结尾的所有文件(这有效)
- 排除文件名中包含“测试”的所有文件(这有效)
- 排除一个名为“bananas”的整个目录(这不起作用)
我尝试了几种通配符组合来尝试排除香蕉目录,但无济于事。我也尝试过重新排序包含和排除,但我不知道这是否会有所不同。我还尝试了其他一些建议[1][2],但没有完成这项工作。目前我的疯狂猜测是,在香蕉目录中,有与“* .class”匹配的文件,所以我认为它们的包含是防止香蕉被排除在外。
注意:我完全匹配香蕉目录的真实名称,所以区分大小写应该不是问题。如果它可以使任务更简单,我可以引用目录的完整路径,尽管我希望在 ant 任务中对重构更友好一些。
如何排除已包含在 ant 文件集中的目录?
[1] http://www.velocityreviews.com/forums/t146608-in-ant-how-do-you-exclude-a-directory-from-copy-or-zip.html
[2] http://www .java2s.com/Tutorial/Java/0520__Ant/filesetwithexclude.htm