如何使用 liberty-maven-plugin 在后台以调试模式启动 Liberty 服务器?

How do I start a Liberty server in debug mode in the background with the liberty-maven-plugin?

用例

liberty-maven-plugin has a debug 目标允许您以调试模式启动服务器,但在 前台

通常在想要附加调试器时,这就是您所需要的。您可以以某种方式或通过从另一个 shell.

启动的其他目标单独执行测试

但是 调试 目标与 run 目标一样,运行 在前台并阻塞,直到服务器进程完成。

如果我想继续构建的下一阶段,例如关于 运行 集成测试,它可以帮助配置 start 目标以在后台以调试模式启动服务器,然后继续。

使用:src/test/resources/jvm.options

src/test/resources/jvm.options中,例如:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=7777

这是 <jvmOptionsFile> 配置参数(描述 here)的默认值,因此您当然可以根据需要配置不同的位置。

注:

虽然另一种方法似乎是使用 <jvmOptions> 配置,但它不适用于此值中嵌入的逗号 (',')。

警告:

您可能期待来自启动 JVM 的消息:

Listening for transport dt_socket at address: 7777

但是您不会从 Maven 执行日志中看到它,它实际上出现在已配置服务器的 console.log 文件中。所以 Maven 执行将在记录消息时暂停:

[INFO] Starting server defaultServer.

如果您未能及时连接,您将看到:

[INFO] Server defaultServer start failed. Check server logs for details.