Java jvm似乎使用System.exit

Java jvm似乎使用System.exit,java,maven,cucumber-jvm,Java,Maven,Cucumber Jvm,我使用exec插件调用cucumberjvm作为maven生命周期的一部分。然而,Cucumber似乎在终止时使用System.exit(),因此它过早地停止了我的maven运行。这迫使我将其转移到一个单独的进程,但这在我尝试调试测试时会出现问题 有没有办法礼貌地要求JVM在System.exit()终止时不要使用它 调用命令行时,请使用 mvn exec:exec 而不是 mvn exec:java 为了避免maven与cucumber在同一个VM中运行。 调用命令行时,请使用 mvn e

我使用exec插件调用cucumberjvm作为maven生命周期的一部分。然而,Cucumber似乎在终止时使用System.exit(),因此它过早地停止了我的maven运行。这迫使我将其转移到一个单独的进程,但这在我尝试调试测试时会出现问题


有没有办法礼貌地要求JVM在System.exit()终止时不要使用它

调用命令行时,请使用

mvn exec:exec
而不是

mvn exec:java
为了避免maven与cucumber在同一个VM中运行。
调用命令行时,请使用

mvn exec:exec
而不是

mvn exec:java
为了避免maven与cucumber在同一个VM中运行。

(我假设有一个很好的理由不使用junit runner&您正在调用
cucumber.api.cli.Main
,如果任何一个假设都是错误的,请澄清问题)

考虑到
cucumber.api.cli.Main
大约有4行代码,最简单/最方便的解决方案是编写自己的Main方法,该方法是cucumber方法的克隆,无需
系统。退出
调用

另外,您可以在他们的github站点上提出问题,和/或向他们发送一个pull请求,并对其
Main
类进行必要的调整(例如,如果设置了某些系统属性,则不要执行system.exit)。

(我假设有一个很好的理由不使用junit runner&您正在调用
cucumber.api.cli.Main
,如果任何一个假设都是错误的,请澄清问题)

考虑到
cucumber.api.cli.Main
大约有4行代码,最简单/最方便的解决方案是编写自己的Main方法,该方法是cucumber方法的克隆,无需
系统。退出
调用


另外,您可以在他们的github站点上提出问题,和/或向他们发送一个pull请求,并对其
Main
类进行必要的调整(例如,如果设置了某些系统属性,则不要执行system.exit).

我试过了,但没有解决我的调试问题。一旦我exec:exec,IDE就会松开它对我执行的任何东西的句柄。我试过了,但它没有解决我的调试问题。一旦我exec:exec,IDE就会松开它对我执行的任何东西的句柄。这是一个好主意。马特会研究它的,谢谢。是的,我正在使用cucumber.api.cli.Main和我有一个很好的理由不使用junit runner。这实际上挽救了我的项目,非常感谢。这是一个好主意。Matt将研究它,谢谢。是的,我正在使用cucumber.api.cli.Main,我有一个很好的理由不使用junit runner。这实际上挽救了我的项目,非常感谢。