我正在使用最新的IntelliJ IDEA(2016.1.1)- * 但我在以前的版本中也看到过这种行为 * -使用最新的Scala插件(3.0.3)在Scala中开发。
当我尝试运行/调试一个测试或代码时,IDEA将启动Make项目,但会停留几秒钟,而“Make”进度条根本没有进展。
20-30秒后,“消息”选项卡中出现以下消息:
警告:scala:无法连接到localhost/127.0.0.1:59656处的编译服务器,正在尝试在没有该服务器的情况下进行编译
这里显示的端口59656是我自己在%USER_PROFILE%\.IntelliJIdea2016.1\config\options\scala.xml
中硬编码的端口,在我第一次在默认端口上注意到这个问题之后,所以更改端口没有帮助...
在这一点上,在代码真正运行之前,工具栏将显示“阅读compilation settings...”(正在读取编译设置...),持续几十秒。这非常麻烦,我似乎无法确定地修复它。这很容易花费3分钟来运行一个测试。非常混乱。我注意到这个问题在我的工作机器(Win7)上间歇性地发生。
有人知道如何调试/修复这个问题吗?
谢谢
5条答案
按热度按时间pjngdqdw1#
我也遇到过同样的问题。我使用的是IntelliJ 2017.3. Play framework 2.6. Stb 0.13.15.通过在scala编译服务器JVM参数中添加-server -Xss 1 m解决了这个问题:
pxq42qpu2#
我遇到了同样的问题,这是由于设置存储库和本地首选项之间的设置文件冲突造成的。您的编译服务器设置存储在IDEA首选项目录中名为
scala.xml
的文件中。如果您使用“设置同步”,即在线存储库来同步IDEA设置,请确保您只有 * 一个 *
scala.xml
配置文件。转到您的Library/Preferences/<IDEA-Dir>/
并从options
和settingsRepository
目录中删除该文件。这将重置为“出厂设置”。重新启动IntelliJ,再次设置编译服务器。现在它应该只向
settingsRepository
目录写入一个文件,并为编译服务器分配新的ID和端口。这个帮我修好了。
4sup72z83#
我还没有完全理解这一点,但是在Preferences,Languages & Frameworks〉Scalac Server下有一些设置可能会有所帮助:
IntelliJ窗口的右下角有一个小图标,它指示编译服务器是否正在运行,并可用于停止和启动它。
如果服务器处于空闲状态,则服务器将关闭。它通常应在需要时启动,但如果JVM SDK与模块SDK不匹配,则可能不会启动。增加空闲超时应有助于降低出现问题的频率。将JVM SDK与模块SDK匹配应可解决此问题,但如果您有多个项目使用不同的SDK,则可能无法解决此问题。
如果经常在项目之间切换,则使用项目主目录作为编译器服务器工作目录可能会有所帮助。
我在IntelliJ IDEA Ultimate 2016.3.2上又遇到了这个问题,但是通常的干净关机和重新启动的方法不起作用。我拼凑了一些关于编译服务器如何工作的信息,在我看来IntelliJ正在为编译服务器寻找错误的端口。如果我手动强制一个make,那么我可以看到一个编译服务器正在运行,但这不是IntelliJ要找的。我仍然没有解决方案,但这些信息可能会让我们更接近一个。
第一步是确定IntelliJ存储其配置和日志文件的位置。此信息目前发布在以下位置:IntelliJ Directories
在我的Mac上,这意味着:
编译服务器是一个Java进程,它有一个很长的命令行,结尾如下:
配置选项存储在~/库/首选项/IntelliJidea2016.3/options/scala.xml中
其中一些设置是在Preferences-〉Languages & Frameworks-〉Scala Compiler Server对话框中配置的,但其他设置可以通过编辑文件来添加。
我手动添加了COMPILER_SERVER_PORT选项,但是在这个版本的IntelliJ中,它用于单次编译的编译服务器具有不同的端口和ID。不幸的是,如果我更改COMPILER_SERVER_PORT并重新启动IntelliJ,则此进程使用不同的端口,因此我认为这是两个独立的示例。
在手动启动编译后,我使用以下命令查找编译服务器进程:
此命令查找IntelliJ使用的端口:
这里还有一个日志文件:
这表明有些事情不太对劲
CompileServerLauncher.scala表明这与无法找到要使用的JDK 8有关,尽管如果找不到JDK 8,它看起来应该失败,并显示错误消息,而不是NullPointerException。
bxjv4tth4#
我仍然得到这个问题与IntelliJ 2021.2.2社区版和简单的重新启动IntelliJ IDE解决了它。
dced5bon5#
我在使用IntelliJ 2022.3.1时遇到了同样的问题。
我注意到,在项目之间切换时,编译器服务器的工作目录似乎会发生变化,因此最好将项目主目录设置为编译器服务器的默认工作目录。
请访问:
文件-〉设置-〉构建、执行、部署-〉编译器-〉ScalaCompiler-〉ScalaCompileServer,
然后选中"在项目目录中启动过程"框
此外,请确保
-server -Xss1m
包含在JVM VM选项中: