java - 我无法从多模块 Maven 项目中加载资源

标签 java maven

菜鸟在这里,我有一个多模块 maven 项目,但我无法在资源文件夹下加载 xml 文件。
项目结构:
enter image description here
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/

相关文章:

java - LL1 语法中的左递归消除

java - 事务未激活异常 - EJB 事务状态

java - 如何从RecyclerView的ItemDecoration类访问LayoutManager?

java - Maven Spring 启动 :run against compiled jar

java - 运行 Drools 时避免解析项目 pom.xml

web-services - spring boot部署外部tomcat

java - 以编程方式(不进行字符串匹配)检查 JVM 是否使用 IPV6 或 IPV4

java - 更改波表音高(重新采样)

spring - Intellij 无法运行具有特定依赖项的 Spring 应用程序

java - Maven 似乎没有将参数传递给 JVM