JPMS资源解析

时间:2018-08-29 20:40:53

标签: java java-module

在为现有实用程序库创建module-info.java的过程中(将JDK 10.0.2与源和目标10一起使用,IDEA 2018.2,Maven 3.5.4),我遇到了以下问题:

src/main/resources/com/example/spring/config下,我有一组Spring XML,例如:

SpringLoggingConfig.xml
SpringApplicationId.xml

在打包时将它们正确打包在jar中。但是,从IDE菜单运行Lifecycle->test时,所有ClassPathXmlApplicationContext实例的创建都会失败,并且找不到上面列出的资源。另一方面,当使用测试类的上下文菜单运行单个测试时,它可以正常运行。 (也许是因为生命周期菜单使用surefire插件,而后者模式直接运行junit-吗?)

修补了一段时间后,我通过添加一行找到了解决方法

opens com.example.spring.config;

module-info.java(IDEA将其标记为空包,因为实际上在编译时,src/main/java下没有这样的包。)

我的问题是

  1. 这是正确的方法吗?
  2. 如果是这样,它如何工作?
  3. 如果没有,正确的解决方案是什么?

0 个答案:

没有答案