如何使用 liberty-maven-plugin "run" 目标以调试模式启动 Open Liberty 服务器?

How can I start an Open Liberty server in debug mode with the liberty-maven-plugin "run" goal?

liberty-maven-plugin 的 liberty:run 目标提供了创建服务器、安装所需功能和部署我的应用程序的单一目标,但是如果我想附加调试器来单步执行我的应用程序怎么办?

liberty:debug 目标不是答案,因为它不会在一个目标中执行所有这些操作。

对于 liberty-maven-plugin 的最新版本(自 v3.1 起),例如:

        <plugin>
            <groupId>io.openliberty.tools</groupId>
            <artifactId>liberty-maven-plugin</artifactId>
            <version>3.3.3</version>
        </plugin>

有几个选项:

1。添加一个-Dliberty.jvm.debug属性

(OP 询问时使用“运行”)

$ mvn liberty:run -Dliberty.jvm.debug="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777"

请注意 'liberty.jvm.debug' 属性 名称的 'debug' 部分可以是任何字符串。

2。使用 liberty:dev 模式(目标)代替

(更好、更丰富的方法)

'dev' 目标还将在前台安装一个 Open Liberty 服务器,并将您的应用程序部署到该服务器(如 'run'),同时还会创建一个文件“watcher”来检测项目变化,它会自动更新你的安装,重建和重新部署你的应用程序,并重新运行你的测试。 (默认情况下您可以附加调试器)。

有关详细信息,请参阅: