Java Eclipse将**排除模式添加到src/main/resources:如何读取资源文件?

Java Eclipse将**排除模式添加到src/main/resources:如何读取资源文件?,java,eclipse,maven,resources,m2eclipse,Java,Eclipse,Maven,Resources,M2eclipse,我用Eclipse(Oxygen.2发行版(4.7.2))和标准的src/main/resources文件夹创建了一个简单的Maven项目,并将其添加到类路径中。问题是Eclipse向src/main/resources文件夹添加了一个排除模式**。以下是一些图片,以更好地说明情况: 您可以自己复制这种情况,只要记住运行Maven->updateproject 根据答案,这不是一个错误,但它是正确的行为 所以问题是:如何从src/main/resources读取资源文件? 我不能使用显式路径

我用Eclipse(Oxygen.2发行版(4.7.2))和标准的src/main/resources文件夹创建了一个简单的Maven项目,并将其添加到类路径中。问题是Eclipse向src/main/resources文件夹添加了一个排除模式
**
。以下是一些图片,以更好地说明情况:

您可以自己复制这种情况,只要记住运行Maven->updateproject

根据答案,这不是一个错误,但它是正确的行为

所以问题是:如何从src/main/resources读取资源文件?


我不能使用显式路径src/main/resources,因为在编译的结果中没有这样的路径,我不能使用.getResource或.getResourceAsStream,因为Eclipse在该路径上放置了一个排除模式
**

我写下这个答案,以防其他人有同样的问题

我发现Eclipse中src/main/resource文件夹上的排除模式是正常的(参见上面链接的答案)。排除意味着不是Eclipse处理src/main/resources文件夹编译,而是Maven(准确地说是Eclipse的Maven插件,M2Eclipse)。在类路径中找不到这些资源是由于pom.xml中存在排除:

<resource>
    <directory>src/main/resources</directory>
    <excludes>
        <!-- these resources will be excluded from the classpath; they will not go in to the target/classes folder and will not be packaged into the artifact -->
        <exclude>**/*</exclude>
    </excludes>
</resource>

src/main/resources
**/*

第1步。从eclipse步骤2中删除项目。第3步导入项目。转到需要添加为源文件夹的文件夹


您是否尝试过使用
GetResourcesStream()。
?Eclipse Maven插件在src/main/resources上设置了类路径排除模式**,因此getResource方法找不到这些文件。很抱歉,我有点无知。但是您是否像测试一样运行代码?使用类似于
this.getClass().getResourcesAsStream(“/test resources.txt”)
?此外,您是否在普通命令行上进行了检查?在没有Eclipse的情况下运行测试?@Luke你真的试过吗?因为我做到了,而且它起作用了
getResource(…)
getResourceAsStream(…)
对于Eclipse/Maven项目中的
src/main/resources
工作良好。资源复制由m2e处理。@排除模式不是问题。检查你的
target/classes
目录,你的资源就会在那里。