如何在IntelliJ 13中调试Scala SBT项目?

我从来没有尝试过使用任何类型的Scala调试器,并且从来没有尝试在IntelliJ Idea中进行任何调试(而我一直在使用Idea编写Scala代码)。 现在,由于最近的IntelliJ Idea 13已经获得了内置的SBT支持,我试图使用该功能(而不是旧的SBT插件方式)来导入SBT项目,这似乎很有用。 但我无法弄清楚在这种情况下如何运行和调试程序。 当然,我可以使用传统的SBT命令行方式来构建和运行,但是现在想法不应该具有原生方式吗? 当我点击Run-Debug或Run-Run时,我弹出的第一个窗口显示如下,以及被调用的第二个窗口(Project Structure窗口)。

运行/调试配置窗口

(注意,运行按钮被禁用(灰色),并且无论我做什么都不会启用)

项目结构窗口

为什么它会抱怨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版本。


如果有人经历类似的事情,例如:

  • 自动完成失败
  • 在“项目结构”里面,它抱怨“scala-compiler-bundle没有被使用”
  • 其他一些奇怪的东西发生在IDE中
  • 你可以按照以前的评论建议(也许这有助于你的情况!),或者你做了什么帮助我..

    我做了什么来创建我的项目:

    我使用activator命令创建了我的基本项目(使用play 2.3 scala模板)。 之后,我导入了项目(IDEA 13.1.4)。 从命令行构建项目工作完美,而在我的IDE中的项目变得疯狂......(就像我上面描述的那样)

    解:

    转到您的“项目结构”并删除项目导入时配置的三个模块IntelliJ中的一个。 它配置一个包含所有必要依赖项的“根”模块,一个“root-build”模块和一个以您的项目命名的模块。 解决方案是删除以您的项目命名的模块,并将“scala-compiler-bundle”添加到您的根模块。 之后,我的项目在IntelliJ内部完全正常工作。

    我希望这将有助于未来的人。

    链接地址: http://www.djcxy.com/p/20013.html

    上一篇: How to debug a Scala SBT project in IntelliJ 13?

    下一篇: UnsatisfiedLinkError with sqlite4java, no sqlite4java