パッケージ構造を変更したため、/bin/ 内の対応するフォルダーが削除されたため、ClassNotFoundException が発生しました。
より具体的には、通常の /src/ と /bin/ があり、/src/ 内に /main と /test があり、これはおそらく /bin/ に反映されていました。ファイルを少しシャッフルして、最終的に /main/model/ と /test/model/ になりました。
対応するフォルダーを手動で作成しようとしました (/src/ のパッケージをミラーリングします) が、これは役に立たないようです。パッケージの 1 つでクラスをコンパイルできましたが、テスト パッケージではコンパイルできませんでした。これは、ScalaTest* を使用しており、scalatest jar ファイルを使用してクラスをコンパイルできなかったためです (またはクラスパスに何か問題がありました)。
だから私の質問は:
- このpeoject内でこれを修正するにはどうすればよいですか? (単純に新しいプロジェクトを作成してソース ファイルをコピーしたくありません)
- 将来、このような煩わしさに対する回復力を高めるために、ビルドシステムについてもっと学ぶ必要があると思いますか? もしそうなら、具体的にはトラブルシューティングが上手になり、将来IDEのコンテキストでビルドをより細かく制御できるようになるために、何を読むべきですか(ビルドをIDEから独立させることは、現時点では優先事項ではありません)?
これらの質問の 1 つに対する回答で十分です。
*それが問題になる場合、すべてのソース ファイルは .scala ファイルです。
うだて
プロジェクトのクリーンを行いました(プロジェクト->クリーン)。これで問題は解決したようです。Eclipse 内からテスト クラスを実行できました。バイナリファイルもすべてそこにありました。新しいパッケージ main.controller を 1 つのクラスで作成し、実行しようとすると、クラスが見つからないと言われました。テストを再度実行しようとしましたが、ClassNotFoundException も返されました。/bin/ を調べると、すべてのフォルダーとファイルがなくなっていることがわかりました。プロジェクトをもう一度クリーンアップしようとしましたが、役に立ちませんでした。どうやってプロジェクトをクリーンアップできたのかわかりませんが、今は修正できませんか?
更新 2
これが Java プロジェクトで再現可能かどうかをテストするために、2 つのパッケージを含む Java プロジェクトを作成しました。メインとテスト。main にメイン クラスがあり、テストのクラスを使用していました (そのため、パッケージ間で依存関係がありました)。無事に走りました。次に、パッケージを追加して main.model と test.model を作成し、対応するファイルをそこに移動しました。それも走った。次に、/bin/ 内のすべてのファイルとフォルダーを削除しようとしましたが、メイン クラスが実行されませんでした。しかし、プロジェクトをクリーンアップすると、正常にクリーンアップされ、メイン クラスを実行できました。次に、そのための Git リポジトリを作成し、/workspace/ の外 (git フォルダー内) に配置して、そこで同じことを試みました。Eclipse は、プロジェクトを毎回正常にクリーンアップすることができました。
だから、Scala プロジェクトをきれいにできない理由がわかりません。