当前位置: 首页 > 知识库问答 >
问题:

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

卓俊晖
2023-03-14

我从未尝试过在Scala中使用任何类型的调试器,也从未尝试过在IntelliJ Idea中调试任何东西(而我一直在使用Idea编写Scala代码)。现在,由于最近的IntelliJ Idea 13已获得内置SBT支持,我尝试使用此功能(而不是旧的SBT Idea SBT插件方式)导入SBT项目,这似乎是可行的。但我不知道在这种情况下如何运行和调试程序。当然,我可以使用传统的SBT命令行方式来构建和运行,但Idea现在不应该有本地方式吗?我在下面演示的第一个窗口,当我单击Run Debug或Run时弹出,表明它是,以及第二个窗口(Project Structure窗口),它被称为。

(请注意,“运行”按钮已禁用(灰色),无论我做什么,都不会启用)

为什么它会抱怨SBT::scala编译器包:2.11。顺便问一下,是否未使用0库?我打算如何使用它?编译器/SBT/IDE不是需要它吗?

此外,当我单击构建-使项目成为异常构建过程终止异常(java.lang.reflect.InvocationTargetExc农田)出现:

错误:异常构建进程终止:线程“main”java中出现异常。朗。反思。在太阳上调用targetException。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上调用(NativeMethodAccessorImpl.java:62)。反映DelegatingMethodAccessorImpl。在java上调用(DelegatingMethodAccessorImpl.java:43)。朗。反思。方法在org调用(Method.java:483)。喷气式飞机。jps。cmdline。发射装置。main(Launcher.java:54)由:java引起。lang.IllegalStateException:未能在io上创建子事件循环。内蒂。util。同时发生的多线程事件执行器组。(MultithreadEventExecutorGroup.java:73)在io上。内蒂。频道多线程事件循环组。(MultithreadEventLoopGroup.java:51)在io上。内蒂。频道尼奥。NioEventLoopGroup。(NioEventLoopGroup.java:72)在io上。内蒂。频道尼奥。NioEventLoopGroup。(NioEventLoopGroup.java:58)位于org。喷气式飞机。jps。cmdline。BuildMain。main(BuildMain.java:77)。。。另外5个原因是:io。内蒂。频道ChannelException:无法在io上打开新选择器。内蒂。频道尼奥。NioEventLoop。openSelector(NioEventLoop.java:128)

我做错了什么?

附言:到目前为止,我使用的是最新的稳定Java、Scala、SBT和理念版本。

共有1个答案

樊桐
2023-03-14

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

  • 自动完成失败

您可以按照前面评论中的建议进行操作(这可能对您的情况有所帮助!)或者你做了什么帮助了我。。

创建项目时我做了什么:

我使用activator命令创建了我的基本项目(使用Play2.3Scala模板)。之后,我导入了该项目(IDEA 13.1.4)。当IDE中的项目变得疯狂时,从命令行构建项目运行良好。。(如上所述)

解决方案:

转到您的“项目结构”,删除在项目导入时配置的三个IntelliJ模块之一。它配置一个包含所有必要依赖项的“根”模块、一个“根构建”模块和一个以项目命名的模块。解决方案是删除以项目命名的模块,并将“scala-编译器-包”添加到根模块中。在那之后,我的项目在IntelliJ内部运行得非常好。

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

 类似资料:
  • 我是一个使用V13的情报人员。 我有一个简单的java项目(默认)结构,如下所示: 现在,我想编写一个简单的测试,并将代码放在/src/test/java目录中。所以我决定更改我的项目格式,使其看起来像: 创建该结构后,我显然希望将src中的当前类移到main/java/com...结构。 如果我在根目录中创建了一个新目录,我可以选择将目录标记为测试源根目录,但它仍然挂在根目录上,如下所示: 有人

  • 我正在开发一个带有原生代码的Android库。此库项目将作为库添加到应用程序项目中。 我想在应用程序项目使用它时调试库。 我很确定库中的设置(makefile,构建命令,编译器选项)是可以的,因为我从库中尝试了调试器(我创建了一个虚拟活动并取消设置“库”),它的工作原理。我也意识到由于加载动态库所需的时间而可能发生的延迟,并且出于同样的原因,我认为这不是问题所在。 在应用程序项目中,我刚刚添加了本

  • 问题内容: 该命令仅覆盖一个目录中的文件。 我想要整个项目,这意味着测试应覆盖dir中的所有文件以及该dir下的所有千岁树dir 。 这样做的命令是什么? 问题答案: 这应该在当前目录及其所有子目录中运行所有测试: 这应该针对给定的特定目录运行所有测试: 这应该以前缀为的导入路径运行所有测试: 这应该运行所有带有前缀的测试导入路径: 这应该在$ GOPATH中运行所有测试:

  • 这个项目没有问题。 但在Java中,我单击并在终端窗口中获得以下内容:- PS c:\users\steve\documents\javaworkspace>&'c:\users\steve.vscode\extensions\vscjava.vscode-java-debug-0.26.0\scripts\launcher.bat''c:\program files\java\jdk1.8.0_

  • 我最近在运行OSX10.9.4的Mac上安装了Java1.8 Update 20 JRE。之后,我还添加了1.8.0_20的JDK。当我进入Terminal并执行“java-version”或“javac-version”时,每次都得到“1.8.0_20”。对我来说,这意味着JRE和JDK1.8现在都是系统标准(我可能在这一点上错了)。 所以,我还添加IntelliJ IDEA 13.1并打开它。

  • 我使用下面的代码来识别项目中的测试类,整个想法是找到测试类,并将测试代码的数量与生产代码进行比较!下面是我的一段代码,负责查找测试类并计算行数: 但是在几个项目上运行代码后,我意识到寻找包含或或的测试类的想法并不是寻找测试类的最佳实践,因为几个项目使用自己的测试方法!所以问题是有比我更好的方法来定义测试类吗? 谢啦