35

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

表达式类型 DslEntry 必须符合 SBT 文件中的 Def.SettingsDefinition 行 enablePlugins(JavaServerAppPackaging)

我的问题是类似的,但发生在每一行。

图片链接

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

4

4 回答 4

18

我遇到过同样的问题。这个解决方案每次都对我有用。1. 点击 IntelliJ Idea 右侧的 sbt 选项卡 2. 点击 Refresh 符号

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

于 2018-09-24T09:48:07.130 回答
16

我在 IntelliJ 中关闭并删除了项目,然后在我的项目文件夹中,我删除了子文件夹project/和. 然后只剩下和。之后,在 IntelliJ 中,我做了: File -> New -> Project from existing sources -> import project from external model -> 。target/.idea/build.sbtsrc/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("."))

于 2018-05-01T18:16:35.320 回答
1

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

于 2019-04-26T02:21:51.743 回答
0

我只是在我的系统上安装了最新的 sbt 版本并更新了 project/build.properties,所以它包含了新的版本号。这为我解决了这个问题。您可能必须手动触发 IntelliJ 中的刷新。

于 2020-12-20T13:47:11.863 回答