Eclipse无法识别Scala代码
我使用Eclipse Indigo和Scala IDE插件。我从Maven下载了一个升降机项目。它构建正确。 Eclipse说它正在用Scala编辑器查看它。Eclipse无法识别Scala代码
但是,它仍然给我在每一行上的错误,因为它将代码视为Java(它给错误没有分号,单词“def”等)。我试着清理项目,它仍然给错误。
一对夫妇的事情,我会尝试:
1)右键单击项目,配置>添加斯卡拉自然。
2)在斯卡拉菜单,运行安装程序Diagnositics公司...>使用推荐的默认设置
打开包资源管理器,看看你的斯卡拉来源。该图标是否显示S
(用于Scala)或J
(用于Java)?
如果你看到一个S
,那么你可能会错过斯卡拉自然。正如Luigi所建议的那样,尝试添加Scala Nature并查看是否解决了您的问题(右键单击项目,配置>添加Scala自然。)
否则,如果看到J
,则可能是“JDT Weaving “未启用。这不应该发生,可能取决于你已经安装的其他插件。
如果我是你,我会尝试的只是从Eclipse中卸载所有Scala IDE插件(如果您在安装的插件列表中看到它,则为“Eclipse的Scala IDE”,以及“JDT Weaving for Scala”)。然后,重新安装Scala IDE 2.0.0-RC04。我知道,这不是理想的解决方案,但如果没有更多的信息,很难说出发生了什么。
如果这也行不通,请在scala-ide-user Mailing List中写一条消息。确保提供Eclipse安装中的插件列表。这可能有助于我们理解正在发生的事情。
我以前也遇到过这个问题,以及使用Maven和Eclipse时 - 我将在Scala透视图中工作,一切都很好,然后在某些时候,Indigo完全失去了使用Scala和正在用Java编译器构建我的代码。在构建路径和配置,清理项目或启用Scala自然方面没有任何帮助似乎可以解决它。
我到目前为止唯一提出的解决方案是在使用Maven时使用IntelliJ,并且仅在使用SBT构建项目时才使用Scala Eclipse插件。您可以尝试将Maven POM转换为SBT项目,但每次依赖项更改时都必须更新。 Heiko Seeberger的sbt-eclipse插件非常漂亮。
我有类似的问题,但是当我删除Scala Nature并将其添加回来时,它就会变好。现在很好。
但还有另一个问题:
我的Java类拒绝承认我的斯卡拉的。但是,当我做一个“Ctrl + Click”= Open Declaration时,它就会进入正确的位置。依赖于Scala的我的Java类看起来像Red一样。我检查了构建路径设置等,他们都看起来不错。
它甚至可能比这更简单,我忘了在源文件的顶部写封装名称,因此Eclipse忽略将其视为Scala文件。
当您复制现有的Java项目以启动新项目或使用项目文件生成器时,可能会出现此问题。
你可以看看的一件事是你的Java Build Path
项目属性。 确保您的Scala源文件夹没有像**/*.java
这样的包含过滤器。 确保它是**/*.scala
或删除它,并且您的源应该被scala插件检测到。
我的Java类拒绝识别我的Scala。但是,当我做一个“Ctrl + Click”= Open Declaration时,它就会进入正确的位置。依赖于Scala的我的Java类看起来像Red一样。我检查了构建路径设置等,他们都看起来不错。
我有同样的问题。当我将我的Scala类移动到正确的包文件夹时,它工作正常。斯卡拉不需要这个。但只有Java编辑器才能重构Scala类。
我解决了编译问题/通过
- 右击项目
- 斯卡拉菜单-chose新斯卡拉安装和 选择版本建立与SBT月食错误,直到上市没有错误
我当时面临同样的问题,因为在项目中scala文件夹中没有包含 后面跟着下面的步骤 project - > properties - > java built path - > source - > add folde r
我使用Maven来生成我的jar。因此,遵循以下步骤 右键单击项目 - > 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>
我希望该文件被称为“.scala”? – aishwarya 2011-12-15 15:56:05
一个可能的原因是您安装了Scala IDE 2.0 RC3并安装了Groovy插件。如果是,请更新到RC4。 – 2011-12-15 16:05:33
是的,该文件被称为斯卡拉。我昨天晚上参加了Scala IDE,所以我很确定它是RC4。 – Joe 2011-12-15 16:26:41