IntelliJ 无法识别 Scala 的 build.sbt
Scala's build.sbt not recognised by IntelliJ
我遇到一个问题,我的 build.sbt 文件无法使用 IntelliJ(Ultimate 2020.2.3)正确获取。我使用 IntelliJ 向导(文件 > 新建 > 项目 > scala / sbt)创建了一个新的 Scala sbt 项目,并向 buid.sbt 文件添加了一个新的依赖项,但是当我尝试将其导入到我的 class 文件,由于依赖性问题,IntelliJ 不会编译我的项目。
sbt 工具 window 获取外部依赖项,但我的项目“外部依赖项”根本不包含库,即使在我刷新项目后也是如此。另外,我的 build.sbt 文件中有一堆错误,好像它没有被 IntelliJ 正确识别,但我已经安装了 Scala 插件,所以我不知道我还能做什么?
在这里你可以看到我已经将 org.slf4j 依赖项添加到我的 build.sbt;它被 sbt 工具 window(右边)拾取,但不是我的项目(左边)
当我将鼠标悬停在 build.sbt 文件中的 libraryDependencies
上时,它似乎无法识别 sbt 语法:
我无法将库导入我的 class 文件,项目无法构建:
我是 Scala 的新手,我只是想创建一个基本的 hello world 项目,但我似乎无法解决这个令人沮丧的问题。
您可以先尝试在某个目录下手动创建一个SBT工程。 build.sbt
一个人就够了。
然后 运行 sbt
在该目录中查看 SBT shell 是否正常工作。使用一些 helloworld 应用程序尝试一些命令,例如 sbt compile
、sbt run
。创建 helloworld 应用程序时,请注意放置它的目录结构,即:src/main/scala/HelloWorld.scala
.
如果一切正常,请转到 IntelliJ 并从那里 import/open 项目 - select build.sbt
.
当您从 IntelliJ 创建或导入 SBT 项目时,bootstrap 需要一段时间才能完成所有工作并下载编译器等。在完成之前不要管它。当需要编译编译器时,第一次编译也是如此:).
要设置示例项目,您可以发出这些 shell 命令:
mkdir untitled
cd untitled/
echo 'name := "untitled"
version := "0.1"
scalaVersion := "2.13.3"
libraryDependencies ++= Seq(
"org.slf4j" % "slf4j-simple" % "1.7.26",
)
' > build.sbt
mkdir -p src/main/scala/
echo 'object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello World")
}
}
' > src/main/scala/HelloWorld.scala
sbt run
如果这些步骤没有问题,则将 build.sbt
导入 IntelliJ。
我终于解决了这个问题。不幸的是,我不是 100% 确定最终是什么解决了它,但 禁用了一堆我没有使用的插件 似乎解决了我的问题。
我怀疑它可能是 Gradle 插件,因为我在 idea.log 文件中看到一些错误,但在 re-enabling 之后,用于测试所有内容的 Gradle 插件仍然存在正在工作所以不确定。
我遇到一个问题,我的 build.sbt 文件无法使用 IntelliJ(Ultimate 2020.2.3)正确获取。我使用 IntelliJ 向导(文件 > 新建 > 项目 > scala / sbt)创建了一个新的 Scala sbt 项目,并向 buid.sbt 文件添加了一个新的依赖项,但是当我尝试将其导入到我的 class 文件,由于依赖性问题,IntelliJ 不会编译我的项目。
sbt 工具 window 获取外部依赖项,但我的项目“外部依赖项”根本不包含库,即使在我刷新项目后也是如此。另外,我的 build.sbt 文件中有一堆错误,好像它没有被 IntelliJ 正确识别,但我已经安装了 Scala 插件,所以我不知道我还能做什么?
在这里你可以看到我已经将 org.slf4j 依赖项添加到我的 build.sbt;它被 sbt 工具 window(右边)拾取,但不是我的项目(左边)
当我将鼠标悬停在 build.sbt 文件中的 libraryDependencies
上时,它似乎无法识别 sbt 语法:
我无法将库导入我的 class 文件,项目无法构建:
我是 Scala 的新手,我只是想创建一个基本的 hello world 项目,但我似乎无法解决这个令人沮丧的问题。
您可以先尝试在某个目录下手动创建一个SBT工程。 build.sbt
一个人就够了。
然后 运行 sbt
在该目录中查看 SBT shell 是否正常工作。使用一些 helloworld 应用程序尝试一些命令,例如 sbt compile
、sbt run
。创建 helloworld 应用程序时,请注意放置它的目录结构,即:src/main/scala/HelloWorld.scala
.
如果一切正常,请转到 IntelliJ 并从那里 import/open 项目 - select build.sbt
.
当您从 IntelliJ 创建或导入 SBT 项目时,bootstrap 需要一段时间才能完成所有工作并下载编译器等。在完成之前不要管它。当需要编译编译器时,第一次编译也是如此:).
要设置示例项目,您可以发出这些 shell 命令:
mkdir untitled
cd untitled/
echo 'name := "untitled"
version := "0.1"
scalaVersion := "2.13.3"
libraryDependencies ++= Seq(
"org.slf4j" % "slf4j-simple" % "1.7.26",
)
' > build.sbt
mkdir -p src/main/scala/
echo 'object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello World")
}
}
' > src/main/scala/HelloWorld.scala
sbt run
如果这些步骤没有问题,则将 build.sbt
导入 IntelliJ。
我终于解决了这个问题。不幸的是,我不是 100% 确定最终是什么解决了它,但 禁用了一堆我没有使用的插件 似乎解决了我的问题。
我怀疑它可能是 Gradle 插件,因为我在 idea.log 文件中看到一些错误,但在 re-enabling 之后,用于测试所有内容的 Gradle 插件仍然存在正在工作所以不确定。