[解決済み】Maven surefireでForkedBooterクラスが見つからなかった。
質問
最近、新しいプロジェクトに参加することになり、ソースコードをコンパイルしようとしています。昨日はすべてうまくいったのですが、今日は別の話です。
を実行するたびに
mvn clean install
を実行すると、テストに到達した時点でエラーになり、クラッシュします。
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ recorder ---
[INFO] Surefire report directory: /lhome/code/recorder/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.junitcore.JUnitCoreProvider
[INFO] parallel='none', perCoreThreadCount=true, threadCount=0, useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, threadCountMethods=0, parallelOptimized=true
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Error: Could not find or load main class org.apache.maven.surefire.booter.ForkedBooter
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
というように、後から
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project recorder: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
で実行しています。
Debian 9
(Stretch) 64-bit、OpenJDK 1.8.0_181。
メイヴン
3.5.4、会社のプロキシの後ろで作業しています。
~/.m2/settings.xml
.
不思議なのは、Surefireの最新バージョンが、私の記憶が正しければ2.22.1であることです。プラグインのバージョンを指定してみたのですが、更新されないし、そうでなければ、どんな POM (親、孫、このいずれでも)。
なんとかMavenにSurefireのバージョンを強制的に最新に変更させたが、今度はさらに悪化した。
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[...]
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project recorder: There are test failures.
[ERROR]
[ERROR] Please refer to /lhome/code/recorder/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 /lhome/code/recorder/ && /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java '-javaagent:/lhome1/johndoe/.m2/repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runt ime.jar=destfile=/lhome/code/recorder/target/jacoco.exec,append=true,includes=esa/*,excludes=**/api/**/*.class' -jar /lhome/code/recorder/target/surefire/surefirebooter7426165516226884923.jar /lhome/code/recorder/target/surefire 2018-10-26T16-16-12_829-jvmRun1 surefire1721866559613511529tmp surefire_023400764142672144tmp
[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 /lhome/code/recorder/ && /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java '-javaagent:/lhome1/johndoe/.m2/repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runt ime.jar=destfile=/lhome/code/recorder/target/jacoco.exec,append=true,includes=esa/*,excludes=**/api/**/*.class' -jar /lhome/code/recorder/target/surefire/surefirebooter7426165516226884923.jar /lhome/code/recorder/target/surefire 2018-10-26T16-16-12_829-jvmRun1 surefire1721866559613511529tmp surefire_023400764142672144tmp
[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:669)
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:282)
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1183)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1011)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:857)
[ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
[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:954)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
解決方法は?
2018年)修正するには、openjdkを最新版、少なくとも8u191-b12に更新してください。 2020年にこの問題が再発した場合、openjdkのデフォルトの動作が変更された可能性があり、その場合はmaven surefireプラグインを更新する必要があります。
これは 現在修正済み openjdk-8パッケージのバグ (動作がアップストリームから必要なく大きく逸脱する。セキュリティチェックを無効に戻すためのアップストリームパッチがない) にアップグレードしたところです。しかし、それはまた a surefireプラグインのバグ、SUREFIRE-1588 surefire 3.0.0-M1で修正されたと思われる。 これは、将来的に Java が相対パス名のみを許可するようになる場所において、 明らかに絶対パスを使用しています (そして Debian はすでに将来の挙動を有効にしています)。
パッケージのバージョン8u181-b13-2に記載されています。
- 8u191-b12 セキュリティアップデートからのパッチを適用します。
191-b12 != 181-b13に注意してください。191-b12 のセキュリティパッチは数日前に公開されたばかりで、どうやらメンテナはそれを早くあなたに届けたかったようです。191-b12 に完全にアップデートするには、おそらくさらなるテストが必要です (このアップロードもそうでしたね、どうやら)。
これまでにもいくつかの回避策がありました。
-
をインストールすることができます。
前のパッケージ
snapshots.d.oから
の代わりに ダウングレードした後、壊れたバージョンを禁止することができます (aptitudeを使用している場合。
apt
を使用します。sudo aptitude forbid-version openjdk-8-jre-headless
. 通常の "apt" では、同様の禁止メカニズムが見当たらなかったので、おそらく apt pinning を使用して、このアップグレードが再インストールされるのを防ぐ必要があるでしょう (あるいは、ただ単に再ダウングレードを続けるか。これはすぐに解決されるといいのですが)。 -
バグトラッキングデータによると
-Djdk.net.URLClassPath.disableClassPathURLCheck=true
を通常のメソッドのどれかを使って(例.JAVA_FLAGS
) も役立つはずです。しかし、私自身は検証していません。どうやら を追加して、回避策を~/.m2/settings.xml
を使用して、すべての Maven ビルドでこの機能を簡単に有効にすることができます。
ご覧の通りです。 バグトラッキングワークス ということで、問題が絞り込まれ、修正パッケージが公開され、近々surefireプラグインの新バージョンが登場する予定です!
関連
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] Java Genericメソッドをstaticにするには?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み】Java 8でJavadocタグが不完全な場合、Mavenは動作しません。
-
[解決済み] java.lang.OutOfMemoryError: MavenにおけるJavaのヒープ空間
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] init-paramとcontext-param