【发布时间】:2018-03-18 19:10:30
【问题描述】:
我使用 Eclipse(Oxygen.2 Release (4.7.2))和标准 src/main/resources 文件夹创建了一个简单的 Maven 项目,并将其添加到类路径中。问题是 Eclipse 在 src/main/resources 文件夹中添加了一个排除模式 **。这里有一些图片可以更好地说明情况:
你可以自己重现这种情况,只要记住运行 Maven -> 更新项目...
根据this 的回答,这不是错误,而是正确的行为。
所以问题是:如何从 src/main/resources 中读取资源文件?
我不能使用显式路径 src/main/resources,因为在编译结果中不会有这样的路径,并且 我不能使用 .getResource 或 .getResourceAsStream 因为 Eclipse 设置了一个排除模式 @987654327 @在那条路径上。
【问题讨论】:
-
你试过用
getResourcesAsStream().吗? -
Eclipse Maven 插件在 src/main/resources 上放置了 ** 的类路径排除模式,因此 getResource 方法找不到这些文件。
-
对不起,我有点无知..但是你有像测试一样运行代码吗?使用
this.getClass().getResourcesAsStream("/test-resources.txt")之类的东西?此外,您是否检查过普通命令行?在没有 Eclipse 的情况下运行测试? -
@Luke 你真的试过吗?因为我做到了,而且它有效。
getResource(...)或getResourceAsStream(...)在 Eclipse/Maven 项目中适用于src/main/resources。资源复制由 m2e 处理。 -
@Luke 排除模式不是问题。检查您的
target/classes目录,您的资源将在那里。
标签: java eclipse maven resources m2eclipse