繁体   English   中英

由于密钥与自身发生冲突,我无法导入sbt项目的奇怪的错误

[英]Strange sbt bug where I cannot import sbt project due to keys colliding with themselves

在IntelliJ中更改我的build.sbt文件后,我收到这个奇怪的错误报告,其中显示“键”(我不知道这些键甚至是什么)与它们自身发生冲突。 研究此错误消息只会发现github pull请求,其中人们请求库维护人员为其密钥添加前缀以避免密钥冲突。 这些内置的IntelliJ键如何与自身发生冲突? 这没有道理。 以下是堆栈跟踪的摘录:

java.lang.RuntimeException: Some keys were defined with the same name but different types: 
'ssExtractBuild' (sbt.Task[org.jetbrains.sbt.structure.BuildData], sbt.Task[org.jetbrains.sbt.structure.BuildData]), 
'settingData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]]), 
'taskData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]]), 
'extractStructure' (sbt.Task[org.jetbrains.sbt.structure.StructureData], sbt.Task[org.jetbrains.sbt.structure.StructureData]), 
'ssExtractDependencies' (sbt.Task[org.jetbrains.sbt.structure.DependencyData], sbt.Task[org.jetbrains.sbt.structure.DependencyData]), 
'ssExtractProjects' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractAndroid' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]]), 
'ssExtractRepository' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]]), 
'ssOptions' (org.jetbrains.sbt.Options, org.jetbrains.sbt.Options), 
'commandData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]]), 
'ssExtractProject' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractPlay2' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]])

完整的堆栈跟踪在这里: https//pastebin.com/ymZvgMCj

这是在我向build.sbt添加依赖项之后发生的。 我认为这是问题,并尝试删除它,但现在我的build.sbt甚至不能在以前的状态下工作! 我已经清除了我的intellij的缓存,重新启动,完全删除了该项目中的.idea文件夹,并将整个项目本身重新导入intellij,我仍然遇到同样的问题。 在我最后一次更改build.sbt之间发生了build.sbt ,现在这会破坏这样的项目?

Preference -> Build, Execution, Deployment 
                  -> SBT 
                      -> check "Use SBT shell for build and import" 
                           -> Press OK

您现在可以刷新SBT项目,它应该可以工作。 如果你愿意,你可以取消选中“使用SBT shell进行构建和导入”,它也可以使用

我也有同样的问题,我通过核对并重新安装IntelliJ来“修复”它。

Intellij版本:IntelliJ IDEA 2017.2.5 Build#IU-172.4343.14 Scala插件版本:2017.2.13

步骤不起作用

  • 切换git分支
  • 无效缓存/重新启动
  • 删除.idea目录并重新导入
  • 将SBT配置更改为不使用捆绑的jar

我最近的2017.3 EAP版本的Idea遇到了同样的错误。 我无法导入项目并得到相同的错误。 我的修复是切换到另一个分支,导入项目(成功),然后再次切换回原始分支,并在Idea中重新导入项目(单击sbt刷新按钮)。

在终端中运行sbt从来没有问题,只有在Idea中。 听起来像一个想法问题......

当我使用Intellij Idea开发Spark时,我也遇到了这个问题,我通过将“文件 - >设置 - >构建工具 - > sbt - >组模块”更改为“使用限定名称”来解决此问题

并选择“文件 - >设置 - >构建工具 - > sbt - >使用sbt shell进行构建和导入”。

就我而言,我有一个python模块。 外部重命名,intellij无法执行与模块结构相关的任何操作。 包括sbt刷新。

使用sbt shell没有解决问题。 无效缓存和重启也没有帮助。

我要删除项目/ .idea文件夹中的sbt.xml

这将删除您当前的sbt设置。 不是竞标协议,因为sbt根本没有工作。

我今天经历过这个尝试过这些东西,但没有解决它:

  • 使用SBT shell进行构建和导入(SBT设置)
  • 使缓存无效并重新启动

然而,当我这样做时,问题终于消失了:

  • 将SBT最大堆大小增加到6000(它是5000)

我今天遇到了同样的问题。 我的修复是:

  • 使缓存无效
  • 关闭Intellij
  • 删除.idea
  • 进口项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM