1

先週から Scala を使い始めたばかりで、この問題に悩まされています。

Java から Scala (ライブラリを除く) に完全に移行したいコードがいくつかありますが、この不思議なエラーのために続行できないブロックにぶつかりました。

org.domain.subdomain.MyClassで定義したクラスがあるとしましょう

コンパイルの問題がないように見えるクラスがありますが (Intellij によって提案されているように)、プロジェクトのモジュールをビルドすると、次のようになります。

MyClassが必要とするクラス ファイルがありません

パッケージorg.domainの参照値サブドメインは、存在しないシンボルを参照しています。

Scala でコードを書き直す前にプロジェクトがコンパイルされていたので、クラスパスを正しく取得したと確信しています (またはほとんど?)。

詳細オプションをオンにしてコンパイルすることはできませんでした。プロジェクト コンパイラとして FSC コンパイラを使用しています。Intellij は詳細オプションで何も表示しません!

ここで何が起こっているのですか?どうすればこれを解決できますか?

4

3 に答える 3

1

この問題が発生したばかりで、IntelliJ でプロジェクトを再インポートするとうまくいきました。.idea ディレクトリと .iml ファイルを削除し、プロジェクトを maven として再インポートしました。

これは IntelliJ の問題です。外部の maven ビルドは正常に機能しました。

于 2013-08-01T19:01:51.917 に答える
0

クラスパスが不完全です。への参照org.domain.subdomainは、ソースの 1 つによって参照されるクラスファイルに表示されます (エラー メッセージで示されます)。

Java コードを書き直す場合は、各モジュールのクラスパスに推移的な依存関係をさらに追加する必要がある場合があります。Scala コンパイラは、型チェックに関してはより積極的であり、状況によっては、より大きなクラスパスが必要になります。

于 2012-09-17T22:18:19.117 に答える
0

質問は1年以上前のものですが、誰かの助けになるかもしれません。

私はちょうど同じ問題を抱えていました。私のライブラリの 1 つは、メイン プロジェクトよりも新しいバージョンの org.scala-lang:scala-library を使用していました。ライブラリの更新後、すべて正常に動作します。

于 2013-12-06T19:06:15.517 に答える