私は、古い ant ビルド スクリプトを SBT に書き直すという任務を負っています。たまたま、私たちのスイートは 3 つのモジュールで構成されています。
- Play 2.3 フロントエンド Web サーバー。
- 他のさまざまなシステムからデータを取得するためのバックエンド。
- データベース アクセスおよびビジネス ロジック用のいくつかの共有クラスを含む中間モジュール。
Build.scala ファイルの抜粋を以下に示します。
val sharedSettings = Seq(
organization := <organization here>,
version := "1.2.5",
scalaVersion := "2.11.1",
libraryDependencies ++= libraries,
unmanagedJars in Compile ++= baseDirectory.value / "lib",
unmanagedJars in Compile ++= baseDirectory.value / "src",
unmanagedJars in Compile ++= baseDirectory.value / "test"
)
lazy val middle = project.settings(sharedSettings: _*)
lazy val back = project.settings(sharedSettings: _*).dependsOn(middle)
ただし、ソースをコンパイルしようとすると、次のエラーが発生します。
クラス ファイル 'ValueConverter.class' で見つかった scala.reflect.runtime への不正なシンボリック参照。パッケージ scala.reflect の用語ランタイムにアクセスできません。現在のクラスパスに scala.reflect.runtime の定義がないか、現在のクラスパスにあるバージョンと互換性のないバージョンに対して ValueConverter.class がコンパイルされている可能性があります。
ソース コードは、次の構造で構成されています。
- 戻る
- ソース
- テスト
- ライブラリ
- 真ん中
- ソース
- テスト
- ライブラリ
- フロント
- ソース
- テスト
- ライブラリ
ここで、各 lib フォルダーには、手動で管理されたライブラリがいくつか含まれています (これが、sbt に移動したい理由です)。
これを解決する方法についてのアイデアはありますか?