Locked History Actions

scala/Scaka_IDE_for_Eclipse

Scala IDE for Eclipse

参考

現状のトラブルとその解決策

現時点(2011/11)では、まだ不具合が多い。典型的な不具合とその解決策を探ってみる。

コンパイルエラーがあると実行できない

一箇所でもコンパイルエラーがあると、binディレクトリがクリアされてしまい、一つの.classファイルも生成されない。 このため一部のコードでも実行することは不可能。これはどうしようもないようだ。

JUnitテストが実行できない

JUnitによるユニットテストを素直に実行してくれないことがある。これに対する解決策は以下。

http://www.assembla.com/wiki/show/scala-ide/Using_Unit_Testing_Frameworks

上の一部訳:

  • プロジェクトのプロパティダイアログを表示する。
  • Java Build Path->Librariesタブでextenral class folder(外部クラスフォルダー)を追加する。つまりこれは、プロジェクトのbinフォルダ

  • Order and Export(順序とエクスポート)タブで、新しいクラスパス(binのこと)をトップにするか、あるいは少なくともソースフォルダの上に来るようにする。
  • もしJUnit4をビルドパスに加えていないのであれば、加える。

これでも実行できない場合がある。その場合は、Run ConfigurationのClassPathタブで、Scala LibraryがJRE System Libraryの上に来るように変更したらうまく行った(あくまで経験則)。

Consoleに表示される例外の中の行をクリックしても「Source not found」と言われてしまう

例えばコンソールに以下のように例外が表示された場合、二行目をクリックすればrelation.scalaの197が表示されるはずだが、 「Source not found云々」と言われてしまう。

Exception in thread "main" ru.circumflex.orm.ORMException: Failed to initialize city.
        at ru.circumflex.orm.Relation$class.liftedTree1$1(relation.scala:197)
        at ru.circumflex.orm.Relation$class.init(relation.scala:185)
        at circumflex_orm_only.City$.init(TestMain.scala:31)
        at ru.circumflex.orm.Relation$class.constraints(relation.scala:131)

おそらくこれ

つまり、ソースに記述されているパッケージがパッケージディレクトリ構造に一致していないとソースが探せない。 Scalaではソースファイルの存在するディレクトリとは無関係にpackageを決定できてしまうが、これはやらない方が良いようだ。