今天我在Eclipse文件中的.classpath文件中看到了这行:
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
我知道*.java
代表任何Java文件,但是在它前面的**/
是什么意思?它代表包含src/main/java
下的所有子文件夹吗?
单个星号 () 匹配路径名中零个或多个字符。 双个星号
(**)
跨目录级别匹配零个或多个字符。另一种解释是,双个星号(**)
匹配斜杠 (/),但单个星号 () 不匹配。
假设我有以下这些类:
1. src/test.java
2. test/src/test.java
好的,*/*.java
只匹配 1 个级别,而 **/*.java
匹配两个级别,因为 ** 可以匹配任意数量的级别。
这意味着包括 src/main/java 下的每个子文件夹吗?
是的。我认为这是一种在glob式表达式中相对常见的模式。例如,可以查看关于在bash shell中使用它的此SO问题。
这意味着在 src/main/java
目录下的每个子文件夹中,以 .java
结尾的文件都会被包括进来。