在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
之间发生了什么事情,现在这样会破坏项目?
答案 0 :(得分:77)
转到
Preference -> Build, Execution, Deployment
-> SBT
-> check "Use SBT shell for build and import"
-> Press OK
您现在可以刷新SBT项目,它应该可以工作。 如果你愿意,你可以取消选中"使用SBT shell进行构建和导入"它也会起作用
答案 1 :(得分:3)
我也有同样的问题,我通过核对并重新安装IntelliJ来“修复”它。
Intellij版本:IntelliJ IDEA 2017.2.5 Build#IU-172.4343.14 Scala插件版本:2017.2.13
无效的步骤
答案 2 :(得分:2)
我在最新的2017.3 EAP版本的Idea中遇到了同样的错误。 我无法导入项目并得到相同的错误。 对我的修复是切换到另一个分支,导入项目(成功),然后再次切换回原始分支并在Idea中重新导入项目(单击sbt刷新按钮)。
在终端中运行sbt从来没有问题,只有在Idea中。 听起来像一个想法问题......
答案 3 :(得分:1)
当我使用Intellij Idea开发Spark时,我也遇到了这个问题,我通过更改"文件 - >来解决这个问题。设置 - >构建工具 - > sbt - >组模块" to"使用合格的名字"
并制作"文件 - >设置 - >构建工具 - > sbt - >使用sbt shell进行构建和导入"地选择。
答案 4 :(得分:1)
就我而言,我有一个python模块。在外部重命名并且intellij无法执行与模块结构相关的任何操作。包括sbt刷新。
使用sbt shell无法解决问题。使缓存无效并重新启动也无济于事。
我必须删除project / .idea文件夹中的sbt.xml
。
这将清除您当前的sbt设置。由于sbt根本不起作用,因此没有出价交易。
答案 5 :(得分:0)
我今天遇到了这种情况,尝试了以下方法,但并没有解决问题:
但是当我这样做时,问题终于消失了:
答案 6 :(得分:0)
我今天有同样的问题。我的解决方法是: