0

私は、古い 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 に移動したい理由です)。

これを解決する方法についてのアイデアはありますか?

4

1 に答える 1

0

結局、コンパイラに追加のライブラリを理解させることをあきらめました。最終的に、sbt を使用して利用できる依存関係を sbt 管理ライブラリに追加しました。これは明らかにうまく機能します。

于 2015-10-15T06:05:27.380 に答える