我已经从CE 2017.2.5将IntelliJ升级到CE 2017.3版本,现在我无法构建我的sbt项目。构建卡在第一步:
"Build: sync
MyProjName: syncing...
dump project structure from sbt"
我删除了.idea目录和MyProjName/project/target
目录。我从命令行做了一个sbt构建,它起作用了。
然后我再次启动IntelliJ并尝试导入MyProjName/build.sbt
作为项目。我也退出了。这好几次了。导入永远不会超过这一步。
我在防火墙后面工作,但我检查了我的代理设置,它们是正确的,与之前版本相同(如果这很重要)。
我该如何解决/修复此问题?
sbt版本是0.13.6。 Scala插件2017.3.10。
来自日志:
IDE: IntelliJ IDEA (build #IC-173.3727.127, 27 Nov 2017 09:32)
OS: Windows 7 (6.1, amd64)
JRE: 1.8.0_152-release-1024-b6 (JetBrains s.r.o)
JVM: 25.152-b6 (OpenJDK 64-Bit Server VM)
答案 0 :(得分:58)
我在这里解决了以下信息的同步问题: https://youtrack.jetbrains.com/issue/SCL-13024
关键信息是"似乎sbt正在尝试重新解析其来源'和' docs'对于根本不可用的sbt插件。如果要下载的属性"图书馆来源"和" sbt来源"被禁用,然后倾倒结构的时间从永远减少了#39;不到1分钟。"
也就是说,在IntelliJ IDEA中,清除复选框"图书馆来源"在"项目级别设置"用于IDEA首选项中的构建工具sbt。如下图所示:
答案 1 :(得分:12)
我可以解决这个问题的唯一方法是首先在SBT控制台/ cmd行中运行sbt clean compile
,然后在IntelliJ中刷新SBT项目。
答案 2 :(得分:6)
我还没有找到一种方法在IntelliJ Idea CE 2017.3中完成这项工作,所以我已经恢复到CE 2017.2.5
答案 3 :(得分:4)
我遇到了同样的问题!我删除目录〜/ .sbt / 0.13,然后就可以了。您可以删除您使用的sbt目录。
答案 4 :(得分:4)
对我有用的是增加IntelliJ内部SBT的内存。在我的Mac上:首选项 - >构建,执行,开发 - > SBT 然后改变"最大堆大小"从768MB到2048MB,几分钟后一切都成功导入。
答案 5 :(得分:4)
IntelliJ似乎限制了已经很慢的sbt update
的效率。我建议改用sbt-coursier。它是专门为缩短依赖关系更新时间而编写的,在我参与的一个大型项目中,它使依赖关系更新时间缩短了大约2个数量级。
Preferences > Build, Execution, Deployment > Build Tools > sbt
中的“使用自动导入”以防止IntelliJ自行自动更新导入addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3")
添加到项目的build.sbt
文件中
~/.sbt/1.0/plugins/build.sbt
sbt update
如果看到[error] java.lang.NoClassDefFoundError: org/vafer/jdeb/Console
,则将以下内容添加到~/.sbt/1.0/sbt-coursier.sbt
。
import coursier.Keys._
classpathTypes += "maven-plugin"
有关该错误的更多信息,请参见coursier issue #450。
答案 6 :(得分:1)
自定义SBT版本适合我。
IntelliJ IDEA首选项 - >构建,执行,部署 - >构建工具 - > sbt - >发射
选择自定义
答案 7 :(得分:1)
有一个较旧的签出项目导致此问题。常规的rm -rf .idea
是否重新导入,但一直卡住。尝试了各种各样的方法,但最终为我解决此问题时,不仅删除了顶级target
文件夹,而是删除了
find . -name target -type d -exec rm -rf {} \;
接下来的打开/导入操作非常顺利。 (分别是2018.1.5、2018.1.6和2018.2 RC。)
答案 8 :(得分:1)
对我来说,只需检查use sbt shell for both build and imports
即可。
答案 9 :(得分:0)
升级intelliJ到2017.3后,我遇到了同样的问题 但它现在工作正常。
我认为intelliJ无法将'无代理'选项传递给sbt。 所以,我添加了
文件>中的-Dhttp.nonProxyHosts = “主机1 |主机2”
选项设置>构建,执行,部署> sbt> VM参数
答案 10 :(得分:0)
简单地取消选中' sbt来源'为我做了诀窍
答案 11 :(得分:0)
我也面临这个问题。以下两种配置对我有用。我尽力在许多新的sbt项目中确认此设置,但一切正常。
(1)取消选中“项目级别设置”下“构建工具” sbt中的“库源” IDEA偏好 (2)-Dhttp.nonProxyHosts =“ host1 | host2” 文件>设置>构建,执行,部署> sbt> VM参数中的选项
答案 12 :(得分:0)
sbt
-如果是第一次,则需要一些时间。clean
compile
-它将下载项目中具有的依赖项。File
-> Close Project
),然后再次打开它。 注意:如果它要求在屏幕的右下角导入,请激活Enable auto-import
,如果您不想像我一样一直启用它,请按{{1 }},取消同步,然后再次Import
。当您尝试在同步过程中使用导入时,它会陷入从sbt中转储项目结构消息中。
答案 13 :(得分:0)
我遇到了类似的问题,但发现与等待锁有关
也许如果杀死IntelliJ IDEA并且没有人会释放锁定文件,则可以在手动删除锁定文件后解决该问题