让maven surefire在存在module-info.java文件的类路径上运行

让maven surefire在存在module-info.java文件的类路径上运行,java,maven,maven-surefire-plugin,Java,Maven,Maven Surefire Plugin,我试图编写一个可以在模块路径上顺利运行的库,但是我使用org.testcontainers包进行测试,它们有许多依赖项在模块路径上不起作用 以下是我在尝试运行surefire时遇到的错误,我的模块info.java存在: [警告]无法从visible-assertions-2.1.1.jar中提取模块名称: 在顶级目录中找到TtyCheck.class(未命名包) 模块中允许)[警告]无法从中提取模块名称 native-lib-loader-2.0.2.jar:native.lib.loader

我试图编写一个可以在模块路径上顺利运行的库,但是我使用
org.testcontainers
包进行测试,它们有许多依赖项在模块路径上不起作用

以下是我在尝试运行surefire时遇到的错误,我的
模块info.java
存在:

[警告]无法从visible-assertions-2.1.1.jar中提取模块名称: 在顶级目录中找到TtyCheck.class(未命名包) 模块中允许)[警告]无法从中提取模块名称 native-lib-loader-2.0.2.jar:native.lib.loader:模块名称无效: “native”不是Java标识符[警告]无法提取模块名称 来自junixsocket-native-common-2.0.4.jar:junixsocket.native.common: 无效的模块名称:“本机”不是Java标识符

这些导致未发现类的进一步问题

请注意,这是一个运行时问题,代码编译没有问题,生成的jar也可以工作

就我所了解的surefire文档而言,如果存在
module info.java
文件,它会尝试在模块路径上运行测试


有没有办法禁用此行为并让maven surefire在类路径而不是模块路径上运行测试?

我通过添加以下内容来解决此问题:

    <configuration>
      <forkCount>0</forkCount>
    </configuration>

0

对于maven surefire plugin插件部分,它给了我警告
[warning]useSystemClassloader设置在不分叉时无效

请显示完整的pom文件…@khmarbaise这里是一个完整的示例,如果删除module-info.java文件,测试将开始工作