如何排除已包含在Ant文件集中的目录?
我正在ant中使用如何排除已包含在Ant文件集中的目录?,ant,fileset,Ant,Fileset,我正在ant中使用jar任务,希望排除某个目录。目录的结构类似于: food |_ fruits |_ apples |_ bananas (已经做了一些通用和简化) 我有一个蚂蚁任务,像这样: <jar destfile="Dest.jar"> ... <fileset dir="food"> <exclude name="**/bananas/" /> <excl
jar
任务,希望排除某个目录。目录的结构类似于:
food
|_ fruits
|_ apples
|_ bananas
(已经做了一些通用和简化)
我有一个蚂蚁任务,像这样:
<jar destfile="Dest.jar">
...
<fileset dir="food">
<exclude name="**/bananas/" />
<exclude name="**/*Test*" />
<include name="**/*.class" />
</fileset>
...
...
...
我想做的是:
- 包括以“.class”结尾的所有文件(此功能)
- 排除文件名中包含“Test”的所有文件(此选项有效)
- 排除名为“香蕉”的整个目录(这不起作用)
[1]
[2] 我已经发现了问题的原因,这与ant任务的编写方式无关 这个问题似乎与文件集includes和excludes无关,更多的是与jar文件是否真正被创建有关。重复运行任务,并且始终使用相同的jar目标,似乎创建的jar文件并没有替换现有的jar(正如我假设的那样)。删除jar并重新运行ant任务产生了我预期的结果
我不知道我是否应该为假设文件将被替换而感到愚蠢,或者我是否有权利因为没有关于它的日志消息而感到委屈,欢迎评论。总之,问题解决了。什么版本的Ant,什么平台?我尝试在Windows XP上用Ant 1.8.1重新创建您的示例,它似乎可以按照您的要求工作。在Eclipse中运行1.7.1版。我将尝试1.8.1,看看这是否有区别:)@Anders:请看我的答案,您对include/excludes工作的看法完全正确,并且您提示我在ant任务本身之外寻找答案:-)奇怪的是,我也会期待一条日志消息。出于好奇,您是否使用-verbose标志()运行ant?当我陷入构建脚本的困境时,它总是帮助我解决问题。