如何从依赖maven模块加载资源



我有一个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")

最新更新