2

scala-actors 2.10.x を使用する内部ライブラリがあります。これはbuild.sbtに含まれています

libraryDependencies <++= scalaVersion(v =>
  Seq("org.scala-lang" % "scala-actors" % v)
)

このライブラリは 2.10.0 でのみコンパイルされ、内部の Maven リポジトリにプッシュされました。

ライブラリに依存するプロジェクトの 1 つが 2.10.1 に更新されました。依存プロジェクトには同じものがあるlibraryDependenciesため、依存プロジェクトをコンパイルすると次のように警告されます。

$ sbt
[info] Loading project definition from /tmp/foo/project
[info] Set current project to bar (in build file:/tmp/foo/)
[warn] Potentially incompatible versions of dependencies of {file:/tmp/foo/}bar:
[warn]    org.scala-lang: 2.10.1, 2.10.0

依存関係 sbt プラグインを使用すると、次のようになります。

[info]   +-com.example:ourlibrary_2.10:1.0.1 [S]
[info]   | +-org.scala-lang:scala-actors:2.10.0 (evicted by: 2.10.1)
[info]   |
[info]   +-org.scala-lang:scala-actors:2.10.1 [S]

libraryDependenciesライブラリのベストはどのように書かれるべきですか? 私は次のものを持っていますが、よりクリーンな方法はありますか?

libraryDependencies <++= scalaVersion(v =>
  {
    // Use any version of scala-actors for this version of Scala.
    val split = v.split('.')
    val major = split(0).toInt
    val minor = split(1).toInt
    val revision = "[%s.%s,%s.%s)".format(major, minor, major, minor+1)
    Seq("org.scala-lang" % "scala-actors" % revision)
  }
)
4

1 に答える 1