ANT通配符有三种:
通配符 | 说明 |
? | 匹配任何单字符 |
* | 匹配0或者任意数量的字符 |
** | 匹配0或者更多的目录 |
一.? 这个字符代表了可以匹配 任一个字符( 要注意的是匹配的是一个字符,不过这个字符是任意的 )
二.* 这个字符代表了可以匹配 0 个或者 多个 任意的字符 ( 这个和上面的那个就不同了 这个可以匹配任意多个字符 不再是简单的一个了 )
三.** 这个字符 则是代表了 可以匹配 0 个或者任意多个目录 ( 这个要注意的是 它匹配的是目录 不在是字符了 )
下面举个例子:
URL路径 | 说明 |
/project/*.a | 匹配项目根路径下所有在project路径下的.a文件 |
/project/p?ttern | 匹配项目根路径下 /project/pattern 和 /app/pXttern,但是不包括/app/pttern |
/**/example | 匹配项目根路径下 /project/example, /project/foow/example, 和 /example |
/project/**/dir/file.* | 匹配项目根路径下/project/dir/file.jsp, /project/foow/dir/file.html,/project/foow/bar/dir/file.pdf |
/**/*.jsp | 匹配项目根路径下任何的.jsp 文件 |
需要注意的是:
最长匹配原则(has more characters)
说明,URL请求/project/dir/file.jsp,现在存在两个路径匹配模式/**/*.jsp和/project/dir/*.jsp,那么会根据模式/project/dir/*.jsp来匹配