我见过这个:
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
在我的Eclipse .classpath文件中多次创建一个新的Maven项目,但我似乎无法弄清楚 - 排除=“**”意味着什么?
编辑:我想我想在这里得到的是,虽然看起来像exclude =“**”应该排除src / main / resources中的所有东西,但是 - 它没有。当我创建一个测试项目并放入文件夹(例如:META-INF)时,它们实际上会显示在目标/类中。为什么?那么排除的重点是什么?TIA
答案 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中的文件应该消失。如果添加构建命令,则应重新显示文件。
我意识到这并没有回答所谓的排除=“**”的问题,但这解释了你所看到的行为。