【问题标题】:Scala source files not recognized by compiler in EclipseEclipse 中的编译器无法识别 Scala 源文件
【发布时间】:2012-03-20 11:15:43
【问题描述】:

我正在开发一个游戏框架项目,该项目已从控制台中删除并从 Eclipse 中打开。

但是,Eclipse 将我的 scala 源文件视为 java 源文件,导致编译错误。

有人可以帮忙吗?

编辑:我的 .project 文件:

<projectDescription>
  <name>web</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>
</projectDescription>

【问题讨论】:

  • 您是否在 Eclipse 中安装了 Scala 插件?开箱即用,Eclipse 不支持 Scala。
  • @Jesper:是的,我愿意。我已经安装了 Scala-ide。
  • 这不是一个答案,但我只是想指出我在使用 Eclipse 和 Scala 时遇到了很多问题。最终我太沮丧并改变了IDE。如果你比我更坚持,我相信它可以修复,但我真的建议使用其他东西(IntelliJ 对我来说很好用)。
  • 感谢 Jens 的提示!我最终可能会切换到 IntelliJ...
  • 谢谢大家。我暂时切换到Helios。效果更好。

标签: eclipse scala playframework-2.0 scala-ide


【解决方案1】:

Scala-ide 的官方支持版本是 Helios,Indigo 版本仍被归类为实验性版本。但是,您可以尝试将 Scala Nature 添加到您的项目中。右键单击项目,选择Configure-&gt;Add Scala Nature,或查看我链接到的两个问题之一中的想法。

【讨论】:

  • @balteo 因为您的 .project 中已经有了 Scala Nature。 Configure 菜单不应包含 Add Scala Nature 项。如果是这样,那将表明您的 Eclipse 与配置文件不同步。所以这是一个有趣的测试。
【解决方案2】:

过去我也遇到过类似的问题。我认为问题出在项目的 Java Builder 上。这是一个.project 文件的内容,它可以构建Java 以及Scala 类。您可以将其与您自己的配置进行比较:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>debug-s</name>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.scala-ide.sdt.core.scalabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.scala-ide.sdt.core.scalanature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

【讨论】:

  • 好点:我不知道这个文件。但是,正如您所看到的,内容几乎相同,并且我有编译错误...
  • 我使用 Eclipse 3.7 版。你认为这可能有问题吗?
  • 正如 scala-ide 主页 (scala-ide.org/download/current.html) 中所解释的那样,推荐的 eclipse 版本可能是 Helios (3.6)。
  • 我也用 3.7 所以没问题。
  • 您的配置看起来不错。也许 Eclipse 在内存中有一个旧版本。你会跳“日食舞”吗?那是right click on project &gt; RefreshSelect Project &gt; (Menu-Bar) Project &gt; Clean...Select Project &gt; Close Project &gt; Open Project。这听起来很愚蠢,但特别是使用 scala 插件时,我经常遇到问题,旧的构建工件出现问题。
【解决方案3】:

我昨天遇到了同样的问题,TWICE,在一个运行良好的项目中(所以我的项目性质很好)。两者都是通过在 Eclipse 中以 eclipse:eclipse 目标(添加对新 jar 的引用)运行 Maven 来触发的,该目标在我的 .classpath 文件周围发生了变化,并使我的所有 .scala 文件变为红色。恢复 .classpath 以匹配我以前的工作版本(减去新的 jars)不会修复编译错误。我重新启动了 Eclipse,重新构建,清理,将 Java 和 Scala 特性从 .project 文件中取出,将所有内容与一小时前工作的版本进行了比较……仍然是红色的。非常沮丧。

我不记得昨天第一次解决问题时这些步骤的具体组合是什么,但我刚刚进来,进行了清理、重新启动等操作,但所有 Scala 文件仍然损坏。 叹息。然后“嗯”,我编辑了其中一个 .scala 文件。这触发了一个“真正的”构建,现在一切都很好。 ?!?!?

TL;DR如果您的项目以前很好,现在您的所有 .scala 文件都已损坏,请尝试对其中一个进行简单的编辑,它对我有用

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。我正在使用 Eclipse 4.3 (Kepler) 和
    用于 Eclipse 3.0.1.v-2_10-201307101641-eff8147 的 Scala IDE。我有一个 maven scala 项目,我将其 eclipsified 和导入。它工作得很好,但是当我导入 java 包时,整个文件不再可编译。通过更改库的顺序,我能够再次编译它。但是后来那个技巧不再起作用,我所有的 scala 文件都变得无法编译。我尝试了这里建议的所有东西(Eclipse 舞蹈),但无济于事。

    然后我尝试在 Eclipse 中创建一个新的 scala 项目。我从原始项目中复制了 .classpath 文件和 src 目录 - 瞧!现在它编译得很好。 maven生成的eclipse文件肯定有问题。

    ETA:我检查了由 maven 创建的 .project 文件。它在其中指定了以下内容: <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> </buildCommand>

    当我把它拿出来时,问题就消失了。我还有另一个问题: &lt;comment&gt;myproject. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.&lt;/comment&gt;

    这可能是javabuilder最初出现的原因。我必须通过将 Scala Nature 添加到我的项目中来添加 scalabuilder。我添加M2Eclipse插件可能不会出现这个问题。我会试试看。

    【讨论】:

      猜你喜欢
      • 2014-07-10
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多