java - 具有 module-info.java 的 maven-surefire-plugin 导致 VM 崩溃

标签 java maven-surefire-plugin module-info

最初我在下一个文件夹中有一个独特的模块信息: src/main/java/module-info.java.

我能够成功运行测试。

现在我需要覆盖 module-info,因为我需要添加一些仅与测试相关的更改。更改是关于打开模块。我在这里添加这个新的 module-info.java: src/main/test/module-info.java.

如果我用它执行测试,我会得到下一个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project myProject: There are test failures.
[ERROR] 
[ERROR] Please refer to /home/xxxxxx/workspace/myProject/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/xxxxxx/workspace/myProject && /home/xxxxxx/programs/java/jdk-11.0.10/bin/java --add-reads org.eclipse.yasson=ALL-UNNAMED --add-opens org.eclipse.yasson/org.eclipse.yasson.internal.cdi=ALL-UNNAMED --add-exports org.eclipse.yasson/org.eclipse.yasson.internal.cdi=java.naming @/home/xxxxxx/workspace/myProject/target/surefire/surefireargs1904933309274673454 /home/xxxxxx/workspace/myProject/target/surefire 2021-03-15T16-59-30_852-jvmRun1 surefire12108354424712784981tmp surefire_06907989403807941803tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/xxxxxx/workspace/myProject && /home/xxxxxx/programs/java/jdk-11.0.10/bin/java --add-reads org.eclipse.yasson=ALL-UNNAMED --add-opens org.eclipse.yasson/org.eclipse.yasson.internal.cdi=ALL-UNNAMED --add-exports org.eclipse.yasson/org.eclipse.yasson.internal.cdi=java.naming @/home/xxxxxx/workspace/myProject/target/surefire/surefireargs1904933309274673454 /home/xxxxxx/workspace/myProject/target/surefire 2021-03-15T16-59-30_852-jvmRun1 surefire12108354424712784981tmp surefire_06907989403807941803tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:690)
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:285)
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:248)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1217)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1063)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:889)
[ERROR]     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR]     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR]     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
[ERROR]     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
[ERROR]     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
[ERROR]     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
[ERROR]     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
[ERROR]     at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
[ERROR]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

target/surefire-reports/2021-03-15T16-59-30_852-jvmRun1.dumpstream 中创建了一个新文件:

# Created at 2021-03-15T16:59:31.842
Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Error occurred during initialization of boot layer'.

# Created at 2021-03-15T16:59:31.854
Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'java.lang.module.FindException: Error reading module: /home/xxxxxx/workspace/myProject/target/test-classes'.

这是测试文件夹中的模块信息:

open module org.eclipse.yasson {
    
    requires jakarta.json;
    requires jakarta.json.bind;
    requires java.logging;
    requires org.junit.jupiter.api;
    requires static jakarta.annotation;
    requires static java.naming;
    requires static java.sql;
    requires static java.desktop;
    requires static jakarta.cdi;

    exports org.eclipse.yasson;
    exports org.eclipse.yasson.spi;
    provides jakarta.json.bind.spi.JsonbProvider with org.eclipse.yasson.JsonBindingProvider;
    uses org.eclipse.yasson.spi.JsonbComponentInstanceCreator;
}

maven-surefire-plugin:3.0.0-M4

Java 版本“11.0.10”

最佳答案

问题是默认包(无包)中有一些测试。更新 maven-surefire-plugin:3.0.0-M5 后,我能够看到这个。

关于java - 具有 module-info.java 的 maven-surefire-plugin 导致 VM 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66641650/

相关文章:

java - maven Surefire 插件找不到支持类

java - 在 IntelliJ IDEA 中使用 JUnit RunListener

java - 包可以从 JDK 11 模块系统中的多个模块访问

java - 什么是好的 "Error Checking"模式(Java)?

java - 在 jar 文件中包含一个文本文件并读取它

java - 文件核心为 131.63 MB;这超出了 GitHub 的文件大小限制 100.00 MB

java - 如何在testCompile和test阶段之间(Surefire执行之前)执行Maven的antrun?

java - Java9 中的合成修饰符和强制修饰符有什么区别

java - ServiceLoader未找到任何服务

java - 为什么要在 AbstractList 迭代器的remove()方法中检查if(lastRet <cursor)?