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:
导出 SBT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -Xmx4G"
后面是命令:sbt.
显示消息
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 时我就是这样设置断点的。
我有一个 Spark 应用程序,我对其实施了许多测试。我 运行 在 docker 容器内的 SBT shell 中进行了此测试。我需要通过从 Intellij 连接来调试应用程序,即使它连接到 SBT 运行ning 实例 shell,断点也会被完全忽略。
我将 fork/test 设置为 false。
还使用此 cmd 在容器内启动 SBT shell:
导出 SBT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -Xmx4G"
后面是命令:sbt.
显示消息
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 时我就是这样设置断点的。