菜鸟在这里,我有一个多模块 maven 项目,但我无法在资源文件夹下加载 xml 文件。
项目结构:
和 TestClass
源代码类似于我从互联网上窃取的以下代码段:
public class TestClass {
public static void main(String[] args) throws IOException {
TestClass test = new TestClass();
InputStream is = test.getFileFromResourceAsStream("general-analyser-job.xml");
}
private InputStream getFileFromResourceAsStream(String fileName) {
ClassLoader classLoader = getClass().getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream(fileName);
if (inputStream == null) {
throw new IllegalArgumentException("file not found! " + fileName);
} else {
return inputStream;
}
}
}
inputStream
总是空的!
最佳答案
首先你不需要添加
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
...
您可以简单地删除该部分,因为它是默认的(约定优于配置)。此外,你应该把你的测试课
TestClass.java
进入 src/test/java
加上一个包名。你不应该把 TestClass
目录到 src/main/java
这是不应使用的默认包。要访问资源,您可以这样:
this.getClass().getResourceAsStream("/general...");
根据您的帖子,我不确定 TestClass
真正的意思是作为测试或稍后作为生产代码的测试实现。如果是这样,您应该将其移动到真正的包中并将其重命名为更有用的名称。
关于java - 我无法从多模块 Maven 项目中加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66503646/