Docker容器中的Intellij CE 2018.2 + SBT:远程调试断点无法正常工作

问题描述 投票:3回答:1

我有一个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

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

我不知道还有什么可尝试的!请帮忙!

scala docker intellij-idea sbt remote-debugging
1个回答
1
投票

除了将test / fork设置为false之外,fork一般也应该设置为false。这包括跑步,建筑等

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

就是这样,这就是我从docker运行时获得断点的方法。

© www.soinside.com 2019 - 2024. All rights reserved.