![](/img/trans.png)
[英]intellij's scala plugin is not recognizing symbols in 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 compile
, sbt 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.