Locked History Actions

Diff for "scala/Scaka_IDE_for_Eclipse"

Differences between revisions 2 and 3
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
例えばコンソールに以下のように例外が表示された場合、二行目をクリックすれば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)
}}}
Line 35: Line 45:
Line 37: Line 48:
ソースに記述されているパッケージがパッケージディレクトリ構造に一致していないとソースが探せないようだ。 つまり、ソースに記述されているパッケージがパッケージディレクトリ構造に一致していないとソースが探せない
Scalaではソースファイルの存在するディレクトリとは無関係にpackageを決定できてしまうが、これはやらない方が良い
ようだ。

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を決定できてしまうが、これはやらない方が良いようだ。