Docker容器中的Intellij CE 2018.2 + SBT:远程调试断点无法正常工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器中的Intellij CE 2018.2 + SBT:远程调试断点无法正常工作相关的知识,希望对你有一定的参考价值。
我有一个Spark应用程序,我有许多实现的测试。我在Docker容器内的SBT shell中运行此测试。我需要通过从Intellij连接来调试应用程序,即使它连接到正在运行的SBT shell实例,也会完全忽略断点。
我将fork / test设置为false。
还使用此cmd在容器内启动SBT shell:
- export SBT_OPTS =“ - agentlib:jdwp = transport = dt_socket,server = y,suspend = y,address = 5005 -Xmx4G”
- 其次是命令:sbt。
它显示消息
在地址:5005收听传输dt_socket
SBT shell暂停,直到Intellij调试器连接到指定的端口。
现在我转到Intellij Remote调试器,调试控制台显示以下消息:
连接到目标VM,地址:'localhost:5005',transport:'socket'
最后,SBT恢复并开始下载依赖项。
当我跑:
test:testOnly fully.qualified.class.name
并提交断点,执行测试用例但忽略所有断点。
我不知道还有什么可尝试的!请帮忙!
答案
除了将test / fork设置为false之外,fork一般也应该设置为false。这包括跑步,建筑等
此外,请确保SBT_OPTS中的挂起标志设置为yes,以便等待Intellij Remote Debugger连接到它以执行测试。
就是这样,这就是我从docker运行时获得断点的方法。
以上是关于Docker容器中的Intellij CE 2018.2 + SBT:远程调试断点无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章