docker 容器中的 Intellij CE 2018.2 + SBT:远程调试断点不起作用

Intellij CE 2018.2 + SBT in docker container: Remote debug breakpoints not working

我有一个 Spark 应用程序,我对其实施了许多测试。我 运行 在 docker 容器内的 SBT shell 中进行了此测试。我需要通过从 Intellij 连接来调试应用程序,即使它连接到 SBT 运行ning 实例 shell,断点也会被完全忽略。

我将 fork/test 设置为 false。

还使用此 cmd 在容器内启动 SBT shell:

显示消息

Listening for transport dt_socket at address: 5005

SBT shell 挂起,直到 Intellij 调试器连接到指定端口。

现在我转到 Intellij 远程调试器,调试控制台显示此消息:

Connected to the target VM, address: 'localhost:5005', transport: 'socket'

最后,SBT 恢复并开始下载依赖项。

当我运行:

test:testOnly fully.qualified.class.name

并提交断点,执行测试用例但忽略所有断点。

我不知道还能尝试什么!请帮忙!

除了设置test/fork为false外,fork一般也应该设置为false。这包括 运行、建筑物等

此外,确保 SBT_OPTS 中的挂起标志设置为是,以便它等到 Intellij Remote Debugger 连接到它来执行测试。

就是这样,当 运行 来自 docker 时我就是这样设置断点的。