我找了类似的问题,我发现了这个:
我的问题很相似,但每一行都会发生。
当我尝试运行时,它会编译并成功运行。
单击“导入项目”时,黄色通知不会消失,但项目会成功重新加载。
如果我将任何行重写为例如val _ = scalaVersion := "2.12.4"
,则错误消失,但看起来很糟糕。
答案 0 :(得分:12)
我在IntelliJ中关闭并删除了项目,然后在我的项目文件夹中删除了子文件夹project/
,target/
和.idea/
。然后只剩下build.sbt
和src/
。然后,在IntelliJ中,我做了:文件 - >新 - >来自现有来源的项目 - >从外部模型导入项目 - > sbt
。
此过程生成了一个新的.idea项目文件。
Expression type Def.Setting[String] must conform to DslEntry in SBT file
现在已经消失了。
希望这有帮助。
更新2018-11-17:
在IntellIJ SBT中使用模块和项目进行混洗时,请尝试替换
lazy val root = (project in file("."))
总是有尊严的
lazy val root = Project(id="module_xyz", base = file("."))
在我的情况下,这个问题就解决了!它来自属于同一IntelliJ SBT项目的不同modules / build.sbt文件中的多个 (project in file("."))
。在我看来,IntelliJ SBT多模块项目中只能有一个(project in file("."))
。因此,有许多不同的Project(id="module_xyz", base = file("."))
可以解决这个问题。
答案 1 :(得分:6)
我有同样的问题。这个解决方案每次都对我有用。 1.单击IntelliJ Idea右侧的sbt选项卡 2.单击刷新符号
它将重新验证本地缓存和Gradle依赖性。 就是这样。
答案 2 :(得分:0)
您还可以尝试将build.sbt文件中的所有内容剪切并粘贴到Word文档中,导入所做的更改,然后将其粘贴回build.sbt文件中。
答案 3 :(得分:0)
我只是在我的系统上安装了最新的 sbt 版本并更新了 project/build.properties 以便它包含新的版本号。这为我解决了这个问题。您可能需要在 IntelliJ 中手动触发刷新。
答案 4 :(得分:-1)
从菜单中选择 - 文件 -> 使缓存无效...
单击无效并重新启动。为我工作