阅读https://ant.apache.org/manual/dirtasks.html,它说
" *这些模式与DOS和UNIX中使用的模式非常相似: ' *'匹配零个或多个字符,'?'匹配一个字符。"
我想清理以下内容(简单例如:)因为我认为第二种形式更简洁易读(如果你知道正则表达式模式,当然):
<copy todir="${target.dir}" flatten="true" >
<fileset dir="${source.dir}" >
<include name="**/*.war" />
<include name="**/*.ear" />
<include name="**/*.gar" />
<exclude name="some-dir/**" />
</fileset>
</copy>
类似于:
<include name="**/*.[weg]ar" />
但不支持,即使它是类UNIX。
<include name="**/*.?ar" />
不够,因为我不想包括&#34; * .jar&#34;
实现这一目标的最有效方法是什么?
ps:仍然在ant-1.7.1
答案 0 :(得分:1)
你应该升级ant版本(&gt; = 1.8.x),然后使用:
<copy todir="${target.dir}" flatten="true" >
<fileset dir="${source.dir}" >
<filename regex=".*\.[weg]ar"/>
</fileset>
</copy>