19

我有带有 Scala IDE 插件的 Eclipse Indigo。我从 Maven 下载了一个电梯项目。它正确构建。Eclipse 说它正在使用 Scala 编辑器查看它。

但是,它仍然在每一行上给我一个错误,因为它将代码视为 Java(它为没有分号,对于单词“def”等给出错误)我尝试清理项目,它仍然给出错误。

4

11 回答 11

49

我会尝试几件事:

1) 右键单击​​项目,配置 > 添加 Scala Nature。

2) 在 Scala 菜单中,运行设置诊断... > 使用推荐的默认设置

于 2011-12-15T15:20:22.893 回答
8

打开包资源管理器,查看您的 scala 源代码。图标是显示一个S(对于 Scala)还是一个J(对于 Java)?

如果您看到S,那么您很可能错过了 Scala Nature。正如 Luigi 建议的那样,尝试添加 Scala Nature 并查看是否可以解决您的问题(右键单击项目,配置 > 添加 Scala Nature。)

否则,如果您看到J,则可能是“JDT Weaving”未启用。这不应该发生,并且可能取决于您安装的其他插件。

如果我是您,我会尝试简单地从 Eclipse 卸载所有 Scala IDE 插件(“Scala IDE for Eclipse”,如果您在已安装插件列表中看到它,还有“JDT Weaving for Scala”)。然后,重新安装 Scala IDE 2.0.0-RC04。我知道,这不是理想的解决方案,但如果没有更多信息,很难判断发生了什么。

如果这也不起作用,请在scala-ide-user 邮件列表中写一条消息。确保提供您在 Eclipse 安装中拥有的插件的完整列表。这可能有助于我们了解正在发生的事情。

于 2011-12-15T17:29:16.750 回答
7

当您复制现有 java 项目以启动新项目或使用项目文件生成器时,可能会出现此问题。

您可以查看的一件事是您的Java Build Path内部项目属性。确保您的 scala 源文件夹没有包含过滤器,例如**/*.java. 确保它是**/*.scala或删除它,并且你的源应该被 scala 插件检测到。

于 2013-10-01T12:08:00.800 回答
2

它甚至可能比这更简单,我忘记在源文件的顶部写包名,因此 Eclipse 忽略了将其视为 Scala 文件。

于 2013-01-11T17:10:49.010 回答
2

我通过 sbt-eclipse 解决了编译/构建错误的问题

  1. 右键项目
  2. Scala 菜单 - 选择新的 Scala 安装并选择版本,直到没有列出任何错误
于 2015-09-03T18:06:24.490 回答
1

我遇到了同样的问题,因为在项目 scala 文件夹中不包含遵循以下步骤项目 -> 属性 -> java 构建路径 -> 源 -> 添加文件夹

于 2015-11-02T09:20:09.510 回答
0

我以前在使用 Maven 和 Eclipse 时也遇到过这个问题——我将在 Scala 透视图中工作,一切都很好,然后在某些时候 Indigo 完全忘记了它正在使用 Scala 并正在构建我的代码这一事实使用 Java 编译器。再多的摆弄构建路径和配置、清理项目或启用 Scala 特性似乎都无法解决它。

到目前为止,我想出的唯一解决方案是在使用 Maven 时使用 IntelliJ,仅在使用 SBT 构建项目时使用 Scala Eclipse 插件。您可以尝试将 Maven POM 转换为 SBT 项目,但每次依赖项更改时都必须更新它。Heiko Seeberger 的 sbt-eclipse 插件非常漂亮。

于 2011-12-15T17:30:54.290 回答
0

我有类似的问题,但是当我删除 Scala Nature 并将其添加回来时,它就可以了。目前这很好。

但是还有一个问题:

我的 Java 类拒绝识别我的 Scala 类。但是,当我执行“Ctrl + 单击”= 打开声明时,它会转到正确的位置。我的依赖 Scala 的 Java 类看起来像红色。我检查了构建路径设置等,它们看起来都不错。

于 2012-05-07T03:26:54.533 回答
0

我的 Java 类拒绝识别我的 Scala 类。但是,当我执行“Ctrl + 单击”= 打开声明时,它会转到正确的位置。我的依赖 Scala 的 Java 类看起来像红色。我检查了构建路径设置等,它们看起来都不错。

我有同样的问题。当我将我的 Scala 类移动到正确的包文件夹时,它起作用了。Scala 不需要这个。但只有这样 Java 编辑器才能重新编译 Scala 类。

于 2015-06-24T18:15:51.030 回答
0

有时,或者在某些版本中,您看不到“添加 Scala Nature”选项。

手动将其添加到您的 .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>
于 2018-02-15T15:18:24.597 回答
0

我使用 Maven 生成我的 jar。所以按照下面的步骤右键单击项目 - > Maven - > 更新项目 - > 检查快照/发布的强制更新 - > 确定

于 2017-09-16T22:59:14.813 回答