我从未尝试在 Scala 中使用任何类型的调试器,也从未尝试在 IntelliJ Idea 中调试任何东西(虽然我一直在使用 Idea 编写 Scala 代码)。现在,作为 the recent IntelliJ Idea 13 has gotten built-in SBT support我曾尝试使用此功能(而不是旧的 sbt-idea SBT 插件方式)来导入 SBT 项目,这似乎可行。但我想不通的是在这种情况下如何运行和调试程序。当然,我可以使用传统的 SBT 命令行方式来构建和运行,但 Idea 现在不应该有 native 方式吗?我在下面说明的第一个窗口在我单击 Run-Debug 或 Run-Run 时弹出,提示它是,以及第二个(项目结构窗口)被调用。
(请注意,“运行”按钮已禁用(灰色)并且无论我做什么都不会启用)
为什么它提示没有顺便使用的 SBT::scala-compiler-bundle:2.11.0 库?我打算如何使用它?不是需要它的编译器/SBT/IDE吗?
此外,当我单击构建时 - 使项目异常构建过程终止异常(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 版本。
最佳答案
如果有人遇到类似的事情,例如:
您可以按照先前评论中的建议进行操作(也许这对您的情况有帮助!),或者您做对我有帮助的事情..
我为创建项目所做的工作:
我使用 activator 命令创建了我的基本项目(使用 play 2.3 scala 模板)。之后我导入了项目(IDEA 13.1.4)。从命令行构建项目非常完美,而我的 IDE 中的项目变得疯狂......(就像我上面描述的那样)
解决方案:
转到您的“项目结构”并删除在项目导入时配置的三个 IntelliJ 模块之一。它配置了一个包含所有必要依赖项的“root”模块、一个“root-build”模块和一个以您的项目命名的模块。解决方案是删除以您的项目命名的模块并将“scala-compiler-bundle”添加到您的根模块。之后,我的项目在 IntelliJ 中运行良好。
我希望这对将来的某人有所帮助。
关于scala - 如何在 IntelliJ 13 中调试 Scala SBT 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352213/