java.nio.file.ProviderNotFoundException:在 运行 "mvn test" 时未找到提供商 "jar"

java.nio.file.ProviderNotFoundException: Provider "jar" not found when running "mvn test"

当尝试使用“mvn test”进行测试时,测试失败并出现错误:

java.nio.file.ProviderNotFoundException: Provider "jar" not found.

编译应用程序 运行 没有问题。

正是这段代码,由于某种原因在测试时失败了:

final FileSystem zipfs = FileSystems.newFileSystem(jarPath, Collections.emptyMap());

我使用 openjdk-11 和这个导入来将 zip 库导入到代码中:

import java.nio.file.FileSystems;

我已经尝试了 pom.xml 中的各种设置并设置了类路径,但到目前为止没有任何效果。即:

<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
  <systemPropertyVariables>
    <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
  </systemPropertyVariables>
  <jvm>${env.JAVA_HOME}/bin/java</jvm>
  <javaCommandLineOptions>
    <option>
      <key>--add-modules</key>
      <value>jdk.zipfs</value>
    </option>
  </javaCommandLineOptions>
</configuration>

运行 --list modules, 可以看到 jdk.zipfs@11.0.14.1

我有一种感觉,它是测试插件,出于某种原因没有选择 zip 库。

我缺少什么才能让测试生效?

我发现罪魁祸首是误导性的错误信息。 使用 mvn test 时,环境看起来与编译版本不同,jarPath 指向目录而不是文件。 我希望错误消息能提供更多有关无法打开该位置而不是无法找到提供商“jar”

的信息