Java 如何从依赖项maven模块加载资源
我在Java 如何从依赖项maven模块加载资源,java,maven,Java,Maven,我在src/main/java中有一个带有java类的maven module BaseProject。有些类正在从src/main/resource文件夹加载xml文件。 这很好用 我有第二个maven项目TestProject,它使用BaseProject作为依赖项。 TestProject是我的JUnit测试项目,因此只有在src/test/java中才有类 如果我使用BaseProject中加载任何资源的一些类,我会得到一个null,因为找不到资源文件 我假设在这种情况下,TestPro
src/main/java
中有一个带有java类的maven module BaseProject。有些类正在从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”)
getResourceAsStream(“path”)
从当前类相对地查找资源。如果foo.bar
是一个完整的包名,那么应该使用绝对路径getResourceAsStream(“/foo/bar/hello.xml”)
它应该可以工作。确保主项目(安装在.m2本地存储库中)的jar包含XML文件。它应该可以工作。确保主项目(安装在.m2本地存储库中)的jar包含XML文件.Doh,第8层问题。错过了maven资源插件。现在它起作用了。谢谢,洛蒂,你可以在目录下列出文件吗?例如,类似MyClass.class.getResourceAsStream(“/foo/bar”).list()?@VijayRatnagiri我希望您实际上是指资源,而不仅仅是文件。只需谷歌一下,比如Doh,第8层问题。错过了maven资源插件。现在它起作用了。谢谢,洛蒂,你可以在目录下列出文件吗?例如,类似MyClass.class.getResourceAsStream(“/foo/bar”).list()?@VijayRatnagiri我希望您实际上是指资源,而不仅仅是文件。只需谷歌一下就可以了。