【发布时间】:2011-01-15 00:46:57
【问题描述】:
如何创建一个基于目录内容排除某些目录的 ant 文件集?
我使用 ant 创建了一个分发 jar,其中每个本地化都在不同的目录中,其中一些不完整,不应该发布。
我想在目录中添加一些内容(例如名为incomplete.flag 的文件),以便 ant 排除该目录。然后我可以在翻译完成后删除该文件,并将其包含在构建中,而无需修改 build.xml。
鉴于此目录结构:
proj
+ locale
+ de-DE
+ en-US
+ fr-FR
此文件集排除了所有incompelte.flag 文件,但我如何排除包含它们的整个目录?
<fileset dir="${basedir}">
<include name="locale/"/>
<exclude name="locale/*/incomplete.flag">
</fileset>
如果需要,我可以编写一个 ant 任务,但我希望 fileset 可以处理这个用例。
【问题讨论】:
-
不是一个真正的答案,但将有效目录添加为
includes而不是excluding不完整是否足够? -
使用 'includes' 并不能解决用例,因为目标是在添加和完成语言环境时不修改 build.xml。
-
您可能希望将包含的肯定列表保留在 build.xml 中(我们不应该更改它,这是有道理的),而是在单独的文件中。然后,该文件将通过
文件“completed-locales.txt”将仅列出已完成的语言环境,每个语言环境一个行:de-DE en-US