我寻找了类似的问题,我发现了这个:
表达式类型 DslEntry 必须符合 SBT 文件中的 Def.SettingsDefinition 行 enablePlugins(JavaServerAppPackaging)
我的问题是类似的,但发生在每一行。
当我尝试运行时,它编译并成功运行。当我单击“导入项目”时,黄色通知没有消失,但项目重新加载成功。如果我将任何行重写为,例如,val _ = scalaVersion := "2.12.4"
错误就会消失,但它看起来很糟糕。
我寻找了类似的问题,我发现了这个:
表达式类型 DslEntry 必须符合 SBT 文件中的 Def.SettingsDefinition 行 enablePlugins(JavaServerAppPackaging)
我的问题是类似的,但发生在每一行。
当我尝试运行时,它编译并成功运行。当我单击“导入项目”时,黄色通知没有消失,但项目重新加载成功。如果我将任何行重写为,例如,val _ = scalaVersion := "2.12.4"
错误就会消失,但它看起来很糟糕。
我遇到过同样的问题。这个解决方案每次都对我有用。1. 点击 IntelliJ Idea 右侧的 sbt 选项卡 2. 点击 Refresh 符号
它将重新验证本地缓存和 Gradle 依赖项。而已。
我在 IntelliJ 中关闭并删除了项目,然后在我的项目文件夹中,我删除了子文件夹project/
和. 然后只剩下和。之后,在 IntelliJ 中,我做了: File -> New -> Project from existing sources -> import project from external model -> 。target/
.idea/
build.sbt
src/
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 项目的多个 不同模块/build.sbt 文件引起的。在我看来,IntelliJ SBT 多模块项目中只能有一个。所以有很多不同的可以解决这个问题。(project in file("."))
(project in file("."))
Project(id="module_xyz", base = file("."))
您还可以尝试将 build.sbt 文件中的所有内容剪切并粘贴到 word 文档中,导入您的更改,然后将其粘贴回 build.sbt 文件中。
我只是在我的系统上安装了最新的 sbt 版本并更新了 project/build.properties,所以它包含了新的版本号。这为我解决了这个问题。您可能必须手动触发 IntelliJ 中的刷新。