Eclipse 类路径排除模式

Eclipse 类路径排除模式,eclipse,classpath,m2eclipse,Eclipse,Classpath,M2eclipse,我看到了这一点: <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> 在创建一个新的Maven项目时,我在Eclipse.classpath文件中多次出现,但我似乎不明白-排除=“**”到底意味着什么 编辑:我想我想在这里得到的是,虽然它看起来像是排除=“**”应该排除src/main/resources中的所有内容,但是-它没有。当我创建一个

我看到了这一点:

<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>

在创建一个新的Maven项目时,我在Eclipse.classpath文件中多次出现,但我似乎不明白-排除=“**”到底意味着什么

编辑:我想我想在这里得到的是,虽然它看起来像是排除=“**”应该排除src/main/resources中的所有内容,但是-它没有。当我创建一个测试项目并放入文件夹(例如:META-INF)时,它们实际上会显示在目标/类中。为什么?那么,排除的意义是什么呢


TIA是一种特殊模式,它匹配基本路径中的每个文件及其所有子目录中的所有文件。在您的示例中,它只是排除了
src/main/resources

中的所有文件,它的基本意思是“排除所有文件”<代码>**是一个通配符,它匹配目录树中任何位置的任何文件或目录


例如,它对于Subversion
.svn
文件夹非常有用,这些文件夹可以出现在源代码树的任何级别。在这种情况下,您可以排除与任何
.svn
文件夹匹配的
**/.svn
。在本例中,
***/
正在匹配树中的任何目录。

由于您使用的是m2eclipse,因此项目中的.project文件包含

<buildCommand>
    <name>org.maven.ide.eclipse.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>

org.maven.ide.eclipse.maven2Builder
这将重写Java builder,并将/src/main/resources中的文件夹复制到/target/classes目录中

如果要删除上面的build命令并清理项目,/src/main/resources中的文件应该消失。如果您添加了build命令,您的文件应该会重新出现


我意识到这并没有回答排除=“**”的问题,但这解释了您看到的行为。

那么为什么当我执行项目清理时,src/main/resources中的所有内容都会最终显示在target/classes中?然而,当我将文件夹和源文件添加到src/main/resources中时,它们仍然显示在target/classes中;这似乎不一致。