2012-03-13 7 views
9

Eclipse 2.1.0.nightly-2_09-201203121521-6e8582eのScala IDEでEclipseバージョン:3.7.2を使用しています。 Javaのバージョンは1.6.0_31です。 OSはUbuntu 11.10です。Scala eclipseプラグインjava.lang.ClassNotFoundException

私はこの問題の解決方法を探しましたが、まだ見つけていません。私が逃した明らかな答えがないことを願っています。

私は、このクラス(ノートパッケージ)を持っている:

package model.x.y 

import org.scalatest.FunSuite 
import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 

@RunWith(classOf[JUnitRunner]) 
class GibberishTestSuite extends FunSuite { 
    test("Check Gibberish") { 
    assert("blah" === "blah") 
    } 
} 

私もGradleのを使用していますが、ソースパスは、この(パッケージにはディレクトリ階層と一致しないことがノート)のようになります。

.../src/test/scala/model/GibberishTest.scala 

EclipseとのGradleはcorespondingクラスファイルを生成します。

bin/model/x/y/GibberishTestSuite.class 
build/classes/test/model/x/y/GibberishTestSuite.class 

これはGradleの微細貫通動作しますが、私は日食で実行しようとしたとき、私は

package model 

にパッケージを変更した場合、私は

Class not found model.GibberishTestSuite 
java.lang.ClassNotFoundException: model.GibberishTestSuite 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 

を得るようにディレクトリ階層とパッケージ名前一致、私はeclipseで単体テストを実行することができます。スカラでは、パッケージ構造とディレクトリ構造が一致しないことは合法です。しかし、不一致はEclipseまたはプラグインを混乱させるようです。

何か間違っていますか?私はいくつかの設定のニュアンスが欠けていますか?このスケーラ言語機能はeclipseでサポートされていませんか?それはある時点でサポートされるのだろうか?

ありがとうございます。

+0

私は同じことに気付きました。私はそれがEclipseビルドでサポートされていないと仮定しています。 –

答えて

7

これはScala/scala-ideの問題ではなくEclipse(JDT)の問題です。

Eclipse(Package Explorer tree does match declared package)に対して発生したバグがありましたが、基本的にEclipseはその階層がパッケージ名と一致すると見なします。これは最終的にはScala-ideで修正されますが、モデルを変更してJDTへの依存を取り除く必要があります。この問題を解決したい場合は、上記の問題に投票を追加することをお勧めします。

+0

何も回避できませんか? – zinking