【发布时间】:2014-06-14 15:44:54
【问题描述】:
我从未尝试在 Scala 中使用任何类型的调试器,也从未尝试在 IntelliJ Idea 中调试任何东西(虽然我一直在使用 Idea 编写 Scala 代码)。现在,作为the recent IntelliJ Idea 13 has gotten built-in SBT support,我尝试使用此功能(而不是旧的 sbt-idea SBT 插件方式)导入 SBT 项目,这似乎有效。但我想不通的是在这种情况下如何运行和调试程序。当然,我可以使用传统的 SBT 命令行方式来构建和运行,但 Idea 现在不应该有本机方式吗?当我单击 Run-Debug 或 Run-Run 时,我在下面说明的第一个窗口弹出,以及第二个(项目结构窗口)被调用。
(请注意,运行按钮已禁用(灰色)并且无论我做什么都不会启用)
为什么它抱怨 SBT::scala-compiler-bundle:2.11.0 库没有顺便使用?我打算如何使用它?需要的不是编译器/SBT/IDE吗?
另外,当我点击 Build - Make Project an Abnormal 构建过程终止异常(java.lang.reflect.InvocationTargetException)出现:
Error:Abnormal build process termination:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.jetbrains.jps.cmdline.Launcher.main(Launcher.java:54)
Caused by: java.lang.IllegalStateException: failed to create a child event loop
at io.netty.util.concurrent.MultithreadEventExecutorGroup.(MultithreadEventExecutorGroup.java:73)
at io.netty.channel.MultithreadEventLoopGroup.(MultithreadEventLoopGroup.java:51)
at io.netty.channel.nio.NioEventLoopGroup.(NioEventLoopGroup.java:72)
at io.netty.channel.nio.NioEventLoopGroup.(NioEventLoopGroup.java:58)
at org.jetbrains.jps.cmdline.BuildMain.main(BuildMain.java:77)
... 5 more
Caused by: io.netty.channel.ChannelException: failed to open a new selector
at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:128)
我做错了什么?
PS:到目前为止,我使用的是最新的稳定版 Java、Scala、SBT 和 Idea。
【问题讨论】:
-
我以前见过“SBT::scala-compiler-bundle:2.11.0”类型错误...通常是我的所有自动完成内容都失败并且项目停止在其中构建IntellJ(但仍然可以从命令行完美构建)。在这些情况下,我通常会删除 .idea 目录并重新导入。 IntellJ 对 Scala 的支持仍然非常糟糕。我没有使用过调试器,但我对这个问题的答案很感兴趣,因为我每天都使用 Scala+SBT+IntellJ。
-
好吧,@djsumdog,只需删除 .idea 目录并按照您的建议重新导入似乎已经解决了问题 - 现在构建、运行和调试工作正常(所以,我认为这使您有资格发布将此建议作为答案并将其作为解决方案获得批准)。但是“SBT::scala-compiler-bundle:2.11.0”错误仍然存在。也许最初的问题原因是最初的 Idea 设置(当我第一次导入项目时我们在那里)很糟糕(没有设置 JDK,项目在 2.11 中时选择了 scala 2.10 等))跨度>
-
我还注意到,一旦我导入一个新项目,它就永远不会起作用,我总是必须删除
.idea目录并重新导入。也许这是因为 Idea 做了一些必要的下载,SBT 本身没有或类似的东西。另一个奇怪的事情是,一旦我导入项目,我总是必须在项目结构窗口中指定 Scala 2.11 版本 - Idea 似乎忽略了它在 build.sbt 中设置并默认将其设置为 2.10。
标签: scala debugging intellij-idea sbt