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

时间:2011-10-18 08:53:36

标签: java maven

我有一个maven模块 BaseProject 和src / main / java中的java类。有些类正在从src / main / resource文件夹中加载xml文件。 这非常好。

我有第二个maven项目TestProject *,它使用BaseProject作为依赖项。 TestProject是我的JUnit测试项目,因此只有src / test / java中的类。 如果我使用BaseProject中的一些加载资源的类,我得到一个nullpointer,因为找不到资源文件。 我假设我的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();

1 个答案:

答案 0 :(得分:1)

getResourceAsStream("path")从当前类中相对查找资源。如果foo.bar是完整的包名,则应使用绝对路径getResourceAsStream("/foo/bar/hello.xml")