Maven Sure Fire 突然开始失败

问题描述 投票:0回答:2

我有一份 Jenkins 工作,上周五还在工作,但从昨天开始就开始失败。这是我的设置

Maven 3.3.9
Oracle JDK 1.8 u144

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
</plugin>

我尝试添加 -e 和 -X 选项,甚至增加日志级别,我在日志中看到的唯一消息是:

Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:9c6abc2:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 31 more
Caused by: java.lang.RuntimeException: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?

这是我尝试过的事情列表(全部来自Stackoverflow):

  • 3.0.0-M3
  • 版本2.21.0
  • reuseForks=false
  • useSystemClassLoader=false
  • trimStackTrace=假
  • argLine=Xmx2048m -XX:MaxPermSize=512m,尝试增加内存,因为我认为分叉的虚拟机正在崩溃
  • useSystemClassLoader=true 和 useManifestOnlyJar=false
  • Oracle Java 8 u144
  • Oracle Java 8 u141

我注意到的其他一些事情是,当执行分叉的 JVM 时,似乎“argLine”没有被传递。例如,这是来自日志:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Forking command line: /bin/sh -c cd /data/apps/jenkins/workspace/Build_Deploy_Full_Dev/myapp/core && /data/apps/java/jdk1.8.0_144/jre/bin/java -jar /data/apps/jenkins/workspace/Build_Deploy_Full_Dev/myapp/core/target/surefire/surefirebooter1916960086357827445.jar /data/apps/jenkins/workspace/Build_Deploy_Full_Dev/myapp/core/target/surefire/surefire2156897915383473994tmp /data/apps/jenkins/workspace/Build_Deploy_Full_Dev/myapp/core/target/surefire/surefire_03179213296845219723tmp

可以看到,调用分叉的 JVM 的命令行没有参数。另外,最后澄清一下,我的测试没有调用任何像“System.exit”这样的调用。我将不胜感激任何帮助!

java maven jenkins jvm maven-surefire-plugin
2个回答
1
投票

我从安装 Jenkins 的同一台服务器运行构建,但是是从 Jenkins 外部运行的,换句话说,是从命令行运行的。我获得了成功的构建,这表明 Maven 和我的依赖项都不是问题原因的一部分。重新启动完成后,构建开始正常工作。


0
投票

我们今天(2024-06-14)观察到一个非常相似的问题,并找到了部分解释。使用 Maven 3.5.3 构建时,Surefire 突然开始失败并出现错误(还缺少相同的神秘版本

9c6abc2
,这就是我找到这篇文章的原因):

The following artifacts could not be resolved:
    org.apache.maven.surefire:surefire-booter:jar:9c6abc2

使用 Maven 3.9.7 构建完全相同的构建会导致另一个类似的问题:

The following artifacts could not be resolved:
    org.apache.maven.surefire:surefire-api:jar:3.3.0 (absent)

确实,在 MavenCentral 中,我找不到 3.3.0 版本,最新的版本是六个月前的 3.2.5。然而,在Apache自己的Nexus上,我发现了三天前(2024-06-11)发布的全新的surefire版本3.3.0。不知何故,Maven 已经知道最新版本,但我们的来源 (MavenCentral) 尚未提供它。

这对我来说仍然是一个谜,为什么旧的 Maven 3.5.3 想要获取 Surefire 版本 9c6abc2!

© www.soinside.com 2019 - 2024. All rights reserved.