我有一个maven模块BaseProject与java类在src/main/java
。一些类正在从src/main/resource
文件夹加载xml文件。这很好。
我有第二个maven项目TestProject,它使用BaseProject作为依赖项。TestProject是我的JUnit测试项目,所以只有在src/test/java
中才有类。
如果我使用一些类从BaseProject加载任何资源,我得到一个null
,因为无法找到资源文件。
我假设在这种情况下,我的TestProject中的src/main/resource
文件夹被认为是查找资源文件的地方。
那么我如何在BaseProject中加载资源文件,使其看起来总是在自己的src/main/resource
文件夹中?
我现在是这样做的:
InputStream inputStream = MyBaseClass.class
.getResourceAsStream(
"foo/bar/hello.xml" );
String content = new Scanner( inputStream, "UTF-8" ).useDelimiter( "\Z" ).next();
getResourceAsStream("path")
相对于当前类查找资源。如果foo.bar
是一个完整的包名,您应该使用绝对路径getResourceAsStream("/foo/bar/hello.xml")