Eclipse .classpath排除模式

时间:2010-09-02 19:22:47

标签: eclipse classpath m2eclipse

我见过这个:

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

在我的Eclipse .classpath文件中多次创建一个新的Maven项目,但我似乎无法弄清楚 - 排除=“**”意味着什么?

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

TIA

3 个答案:

答案 0 :(得分:3)

它基本上意味着“排除一切”。 **是一个通配符,可以匹配目录树中任何位置的任何文件或目录。

例如,它对Subversion .svn文件夹很有用,它可以出现在源树中的任何级别。在这种情况下,您可以排除**/.svn,它将匹配任何.svn文件夹。在这种情况下,**/匹配树中的任何目录。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

这将覆盖Java构建器,并将/ src / main / resources中的文件夹复制到/ target / classes目录中。

如果要删除上面的构建命令并清理项目,/ src / main / resources中的文件应该消失。如果添加构建命令,则应重新显示文件。

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