Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从依赖项maven模块加载资源_Java_Maven - Fatal编程技术网

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我希望您实际上是指资源,而不仅仅是文件。只需谷歌一下就可以了。