IntelliJ IDEA - sbt插件 - '表达式类型Def.Setting [...]必须符合sbt文件中的DslEntry'

问题描述 投票:26回答:3

我找了类似的问题,我发现了这个:

Expression type DslEntry must conform to Def.SettingsDefinition in SBT file at line enablePlugins(JavaServerAppPackaging)

我的问题很相似,但每一行都会发生。

当我尝试运行时,它会编译并成功运行。单击“导入项目”时,黄色通知不会消失,但项目会成功重新加载。如果我重写任何行,例如,val _ = scalaVersion := "2.12.4",错误消失,但它看起来很糟糕。

scala intellij-idea sbt sbt-plugin
3个回答
14
投票

我在IntelliJ中关闭并删除了项目,然后,在我的项目文件夹中,我删除了子文件夹project/target/.idea/。然后只剩下build.sbtsrc/。然后,在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("."))可以解决这个问题。


7
投票

我遇到过同样的问题。这个解决方案每次都有用。 1.单击IntelliJ Idea中右侧的sbt选项卡2.单击“刷新符号”

它将重新验证Local缓存和Gradle依赖项。而已。


0
投票

您还可以尝试将build.sbt文件中的所有内容剪切并粘贴到word doc,导入更改,然后将其粘贴回build.sbt文件。

© www.soinside.com 2019 - 2024. All rights reserved.