[英]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
步骤不起作用
我最近的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根本没有工作。
我今天经历过这个尝试过这些东西,但没有解决它:
然而,当我这样做时,问题终于消失了:
我今天遇到了同样的问题。 我的修复是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.