簡體   English   中英

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 文件添加了一個新的依賴項,但是當我嘗試將它導入到我的一個類文件中時,IntelliJ 不會由於依賴問題編譯我的項目。

sbt 工具窗口獲取外部依賴項,但我的項目“外部依賴項”根本不包含庫,即使在我刷新項目之后也是如此。 另外,我的 build.sbt 文件中有一堆錯誤,比如 IntelliJ 沒有正確識別它,但我已經安裝了 Scala 插件,所以我不知道我還能做什么?

在這里你可以看到我已經將 org.slf4j 依賴添加到我的 build.sbt 中; 它被 sbt 工具窗口(在右側)但不是由我的項目(在左側)

在此處輸入圖片說明

當我將鼠標懸停在libraryDependencies在build.sbt文件時,它似乎並沒有認識到SBT語法:

在此處輸入圖片說明

我無法將庫導入到我的類文件中,並且項目無法構建:

在此處輸入圖片說明

我是 Scala 的新手,我只是想創建一個基本的 hello world 項目,但我似乎無法解決這個令人沮喪的問題。

您可以先嘗試在某個目錄中手動創建一個 SBT 項目。 單獨的build.sbt就足夠了。

然后在該目錄中運行sbt以查看 SBT shell 是否正常工作。 嘗試一些命令,如sbt compilesbt run與一些 helloworld 應用程序。 創建 helloworld 應用程序時,請注意放置它的目錄結構,即: src/main/scala/HelloWorld.scala

如果所有工作都轉到 IntelliJ 並從那里導入/打開項目 - 選擇build.sbt

當您從 IntelliJ 創建或導入 SBT 項目時,需要一段時間來引導所有內容並下載編譯器等。只需等待它完成即可。 當需要編譯編譯器時,第一次編譯也是如此:)。

要設置示例項目,您可以發出以下 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 文件中看到了一些錯誤,但在重新啟用 Gradle 插件以測試一切后,它仍然有效,所以不確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM