web-dev-qa-db-ja.com

Eclipseが認識しないScalaコード

Scala IDEプラグインを備えたEclipseIndigoを持っています。 Mavenからリフトプロジェクトをダウンロードしました。正しくビルドされます。 Eclipseは、Scalaエディターで表示していると言っています。

ただし、コードがJavaとして扱われるため、各行でエラーが発生します(セミコロンがない場合、単語「def」などの場合はエラーが発生します)プロジェクトをクリーンアップしてみました。それでもエラーが発生します。

18
Joe

私が試すことのいくつか:

1)プロジェクトを右クリックし、[構成]> [追加] Scala Nature]を選択します。

2)Scalaメニューで、セットアップ診断を実行します...>推奨されるデフォルト設定を使用します

パッケージエクスプローラーを開き、scalaソースを確認します。アイコンには、S(Scalaの場合)またはJ(Javaの場合)が表示されますか?

Sが表示されている場合は、Scala Natureが欠落している可能性があります。Luigiが提案したように、Scala Natureを追加して、それで問題が解決した場合(プロジェクトを右クリックし、[構成]> [追加] Scala Nature)]

それ以外の場合、Jが表示される場合は、「JDTウィービング」が有効になっていない可能性があります。これは発生しないはずであり、インストールした他のプラグインに依存する可能性があります。

もし私があなただったら、すべてのScala IDEプラグインをEclipseからアンインストールするだけです( "Scala IDE for Eclipse "、およびインストールされているプラ​​グインのリストに表示されている場合は" JDT Weaving for Scala "もあります。次に、Scala IDE 2.0.0- RC04。私は知っています、それは理想的な解決策ではありませんが、より多くの情報なしで何が起こっているのかを知るのは難しいです。

それでもうまくいかない場合は、 scala-ide-userメーリングリスト にメッセージを書いてください。 Eclipseインストールにあるプラグインの完全なリストを必ず提供してください。それは私たちが何が起こっているのかを理解するのに役立つかもしれません。

8
Mirco Dotta

この問題は、既存のJavaプロジェクトをコピーして新しいプロジェクトを開始するか、プロジェクトファイルジェネレーターを使用するときに発生する可能性があります。

確認できるのは、プロジェクトプロパティ内のJava Build Pathです。 scalaソースフォルダーに**/*.Javaのようなインクルードフィルターがないことを確認してください。**/*.scalaであることを確認するか、削除してください。ソースは=で検出されます。 scalaプラグイン。

7
srirachapills

Sbt-Eclipseでのコンパイル/ビルドエラーの問題を解決しました

  1. プロジェクトを右クリック
  2. Scalaメニュー-新規Scalaインストールを選択し、エラーがリストされなくなるまでバージョンを選択します
2
Bacchus

それよりも簡単かもしれませんが、ソースファイルの先頭にパッケージ名を書くのを忘れたため、EclipseはそれをScalaファイルとして見ることを怠りました。

2
trigoman

私は同じ問題に直面していました。プロジェクトscalaフォルダーが含まれていなかったため、次の手順に従いました。プロジェクト->プロパティ-> Javaビルドパス->ソース->フォルダーを追加

1
anupam mishra

同様の問題がありますが、Scala Natureを削除して再度追加すると、問題はありません。今のところ問題ありません。

しかし、別の問題があります。

My Javaクラスはmy Scalaのものを認識しません。ただし、 "Ctrl + Click" = Open Declarationを実行すると、適切な場所に移動します。My Java Scalaに依存するクラスは、全体的に赤のように見えます。ビルドパスの設定などを確認しましたが、すべて問題ないようです。

0
user458617

時々、またはいくつかのバージョンでは、「追加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>
0
xmar

My Javaクラスはmy Scalaのものを認識しません。ただし、 "Ctrl + Click" = Open Declarationを実行すると、適切な場所に移動します。My Java Scalaに依存するクラスは、全体的に赤のように見えます。ビルドパスの設定などを確認しましたが、すべて問題ないようです。

私も同じ問題を抱えていました。 Scalaクラスを正しいパッケージフォルダーに移動すると、機能しました。Scalaはこれを必要としません。しかし、その方法だけですJavaエディターはScalaクラスを再構成しました。

0
Fábio Sena

MavenとEclipseを使用しているときも、以前にこの問題が発生しました。Scalaパースペクティブで作業し、すべてが正常であると、ある時点でIndigoは使用しているという事実を完全に追跡できなくなります。 Scalaであり、Javaコンパイラーを使用してコードをビルドしています。ビルドパスと構成をいじったり、プロジェクトをクリーンアップしたり、Scalaの性質を有効にしたりしても、問題は解決しないようです。

私がこれまでに思いついた唯一の解決策は、Mavenを使用するときにIntelliJを使用し、SBTを使用してプロジェクトをビルドするときにのみScalaEclipseプラグインを使用することです。 Maven POMをSBTプロジェクトに変換してみることができますが、依存関係が変更されるたびにそれを更新する必要があります。 HeikoSeebergerのsbt-Eclipseプラグインはかなり洗練されています。

0
jamie

Mavenを使用してjarを生成します。したがって、以下の手順に従います。プロジェクトを右クリック-> Maven->プロジェクトの更新->スナップショット/リリースの強制更新の確認-> OK

0
Sat