ant patternset partial set

时间:2015-09-11 01:49:47

标签: regex ant

阅读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

1 个答案:

答案 0 :(得分:1)

你应该升级ant版本(&gt; = 1.8.x),然后使用:

<copy todir="${target.dir}" flatten="true" >
 <fileset dir="${source.dir}" >
   <filename regex=".*\.[weg]ar"/>  
 </fileset>
</copy>