Eclipse中的编译器无法识别Scala源文件

时间:2012-03-20 11:15:44

标签: eclipse scala playframework-2.0 scala-ide

我正在开发一个playframework项目,我已经从控制台中解脱出来并从Eclipse打开。

我的scala源文件被Eclipse视为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>

4 个答案:

答案 0 :(得分:5)

过去我遇到过类似的问题。我认为问题是该项目的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>

答案 1 :(得分:4)

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

答案 2 :(得分:2)

我昨天经历了同样的问题,TWICE,在一个工作得很好的项目中(所以我的项目性质很好)。两者都是通过从Eclipse运行带有eclipse:eclipse目标的Maven(添加对新jar的引用)触发的,这些更改围绕我的.classpath文件并使我的所有.scala文件变为红色。恢复.classpath以匹配我之前工作的版本(减去新的jar)将无法修复编译错误。我重新启动了Eclipse,重建,清理,将Java和Scala特性引入和移出.project文件,将所有内容与一小时前工作的版本区分开来......仍然全部为红色。非常令人沮丧。

我不记得昨天第一次修复这些步骤的确切组合,但刚才我进来了,干净,重启等等,仍然所有的Scala文件都被破坏了。 叹气。然后“嗯”,我编辑了一个.scala文件。这触发了一个“真正的”构建,现在一切都很好。 ?!?!?

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

答案 3 :(得分:0)

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

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

ETA:我查看了maven创建的.project文件。它有这个指定:     <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> </buildCommand>

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

这可能是javabuilder首先出现的原因。我不得不通过在我的项目中添加Scala Nature来添加scalabuilder。也许这个问题不会出现我添加M2Eclipse插件。我会尝试看看。