簡體   English   中英

Eclipse無法識別Scala代碼

[英]Eclipse not recognizing Scala code

我有Eclipse Indigo和Scala IDE插件。 我從Maven下載了一個電梯項目。 它構建正確。 Eclipse說它正在使用Scala編輯器查看它。

但是,它仍然在每一行給出一個錯誤,因為它將代碼視為Java(它給出了沒有分號的錯誤,對於單詞“def”等)我嘗試清理項目並且它仍然給出了錯誤。

我會嘗試幾件事:

1)右鍵單擊項目,配置>添加Scala自然。

2)在Scala菜單中,運行Setup Diagnositics ...>使用推薦的默認設置

打開Package Explorer,查看scala源代碼。 圖標是顯示S (對於Scala)還是J (對於Java)?

如果你看到S ,那么你可能會錯過Scala Nature。 正如Luigi建議的那樣,嘗試添加Scala Nature,看看是否能解決您的問題(右鍵單擊項目,配置>添加Scala自然。)

否則,如果您看到J ,則可能無法啟用“JDT Weaving”。 這不應該發生,可能取決於您安裝的其他插件。

如果我是你,我會嘗試簡單地卸載Eclipse中的所有Scala IDE插件(“Scala IDE for Eclipse”,以及“JDT Weaving for Scala”,如果你在安裝的插件列表中看到它)。 然后,重新安裝Scala IDE 2.0.0-RC04。 我知道,這不是理想的解決方案,但如果沒有更多信息,很難說出發生了什么。

如果這也不起作用,請在scala-ide-user郵件列表中寫一條消息。 確保提供Eclipse安裝中的插件的完整列表。 這可能有助於我們了解正在發生的事情。

復制現有Java項目以啟動新項目或使用項目文件生成器時,可能會出現此問題。

您可以看到的一件事是項目屬性中的Java Build Path 確保您的scala源文件夾沒有像**/*.java這樣的包含過濾器。 確保它是**/*.scala或刪除它,scala插件應檢測到你的源代碼。

它甚至可能比這簡單,我忘了在源文件的頂部編寫包名,因此Eclipse忽略了將其視為Scala文件。

我用sbt-eclipse解決了編譯/構建錯誤的問題

  1. 右鍵單擊項目
  2. Scala菜單 - 選擇新Scala安裝並選擇版本,直到沒有列出錯誤

我遇到了同樣的問題,因為在項目scala文件夾中沒有包含以下步驟項目 - > properties - > java built path - > source - > add folder

我有類似的問題,但是當我刪除Scala Nature並將其添加回來時它就變得可以了。 現在這很好。

但還有另一個問題:

我的Java Classes拒絕識別我的Scala。 但是,當我執行“Ctrl + Click”=打開聲明時,它會轉到正確的位置。 依賴於Scala的我的Java類看起來像Red一樣。 我檢查了Build Path設置等,它們看起來都很好。

我的Java Classes拒絕識別我的Scala。 但是,當我執行“Ctrl + Click”=打開聲明時,它會轉到正確的位置。 依賴於Scala的我的Java類看起來像Red一樣。 我檢查了Build Path設置等,它們看起來都很好。

我有同樣的問題。 當我將Scala類移動到正確的包文件夾時,它工作正常。 Scala不需要這個。 但只有Java編輯器才重新調整Scala類。

我用Maven來生成我的罐子。 所以按照以下步驟右鍵單擊項目 - > Maven - >更新項目 - >檢查強制更新快照/版本 - >確定

有時,或者在某些版本中,您沒有看到“添加Scala自然”選項。

手動將其添加到.project文件中應該可以。 例如,這個項目支持scala和java性質,因此它將.java視為Java,將.scala視為Scala。

<projectDescription>
  <name>myprojectname</name>
  <buildSpec>
    <buildCommand>
      <name>org.scala-ide.sdt.core.scalabuilder</name>
    </buildCommand>
  </buildSpec>
  <natures>
    <nature>org.scala-ide.sdt.core.scalanature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
  </natures>
  <linkedResources> </linkedResources>
</projectDescription>

在使用Maven和Eclipse之前我也遇到過這個問題 - 我將在Scala視角下工作,一切都很好,然后在某些時候,Indigo完全失去了它正在使用Scala並構建我的代碼的事實使用Java編譯器。 沒有任何擺弄構建路徑和配置,清理項目或啟用Scala性質似乎解決它。

到目前為止,我提出的唯一解決方案是在使用Maven時使用IntelliJ,並且僅在使用SBT構建項目時才使用Scala Eclipse插件。 您可以嘗試將Maven POM轉換為SBT項目,但每次依賴項更改時都必須更新。 Heiko Seeberger的sbt-eclipse插件很漂亮。

暫無
暫無

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

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