scala - Intellij CE 2018.2 + docker 容器中的 SBT : Remote debug breakpoints not working

标签 scala docker intellij-idea sbt remote-debugging

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

显示消息

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 运行时设置断点的方式。

关于scala - Intellij CE 2018.2 + docker 容器中的 SBT : Remote debug breakpoints not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961399/

相关文章:

scala - Scala 是如何在幕后实现加法运算符的?

scala - 将两个函数之一有条件地应用于一个参数

java - Scala 的 BDD 工具支持可重用的参数化 Gherkin 子句

java - Docker-compose:/app.war 中没有主要 list 属性

intellij-idea - IntelliJ IDEA-显示方法帮助/说明

scala - 二叉树折叠

java - 如何在docker容器中使用docker文件运行jar文件

java - Dockerfile testcontainers 无法连接到 Ryuk

Git混淆("Update"和 "Pull")

java - Intellij Idea Swing 设计器和 ant 构建