2016-07-19 7 views
0

コンパイル時にSBTビルドに失敗しています。スカルブジャー依存関係が見つからないため、SBTビルドに失敗する

name := "Tetst Advice Project" 
version := "1.0" 
scalaVersion := "2.10.6" 

そして、私はこれを持っている: 私はbuild.sbt次持た

~\.sbt\boot\scala-2.10.6 

だから、はっきりと私はスカラ座の右バージョンは私のSBTのためにインストールされています。 私のSBTバージョンは0.13です。

それは私はこのエラーを取得するコードをコンパイルしようとします:

[error] bad symbolic reference. A signature in [x].class refers to term runtime 
[error] in package scala.reflect which is not available. 

何それは私には思えることはSBTのビルドがScalaのライブラリを拾っていないことです。

私のすべての依存関係のジャーはlibフォルダの下にあり、libraryDependenciesを使ってダウンロードしていないことに注意してください。

何が問題になる可能性がありますか?

答えて

0

x.classに参照しているものが実際にのものが含まれていることを確認する必要があります。そのコードがなければ、私はあなたが利用しようとしていることを言うことはできませんが、のどのバージョンが実際にであるかを調べるのにscala.util.Properties.scalaPropOrElse("version.number", "unknown")を使用してください。 printlnまたはログを使用して、その呼び出しの結果を出力します。

バージョン番号をScala APIに参照して、お電話の内容が、実際にはであることを確認してください。これ以上の情報がなければ私はあなたのためにこれに直接答えることはできません。しかし、ランタイムコードで使用されているScalaのバージョンに、ファイル内で参照しようとしているオブジェクトまたはクラスが実際に含まれているかどうかを積極的に確認する必要があります。

.sbtディレクトリにScalaディレクトリを置いても、それがそのビルドを使用しているとは限りません。 SBT Scalaのバージョンを確認するには、あなたのbuild.sbtファイルの一番下にこれを置く:

val x = { 
    println("Scala version: " + scala.util.Properties.scalaPropOrElse("version.number", "unknown")) 
    Seq("") 
} 

これはあなたが実際にSBTファイルで使用しているものをScalaのバージョンが表示されます。これは必ずしも.sbt2.10.6であるとは限りません。

+0

依存関係を動的にダウンロードすると、正常に動作します。私はlibフォルダの下にすべての静的な依存関係を置くことが挑戦だと思います。 –

+0

多分私は何かを見逃していました:あなたの問題を解決するために依存関係をダウンロードする必要がありますか?いくつかの管理された依存関係といくつかの管理対象外の依存関係を持つことができます。前者は扱いが簡単です。 –

+0

私が得る問題は、コンパイル時にscala.reflectパッケージが見つかりませんでした。 私のlibフォルダには、inturnにscalaライブラリが必要ないくつかのjarファイルがあります。私は、スカラ・ライブラリがスカラ・インストールの一部であるので、コンパイル・タスクは常にそれらを見つけると仮定しました。 これはうまくいきませんでした。私は単純にlibraryDependenciesを使用して依存関係をダウンロードし、すべてダウンロードしてコンパイルしました。 私はまだ静的な依存関係を提供する必要がある場合、コンパイルタスクはatleastスカラーを見つける必要があり、それらをlibフォルダに追加しないでください。 –

関連する問題