SBT - 无法精确播放2应用程序的项目依赖性

Mik*_*378 5 scala jersey sbt playframework-2.0

我正在使用Scala作为主要语言创建一个play 2项目,因此需要在Scala中实现一个rest客户端.

不幸的是,我不能轻易使用已知的Java Jersey-Client.

我在github上找到了这个可能很棒的api:sjersey-client

使用SBT作为依赖管理工具,我尝试指示播放app对sjersey的依赖:

object ApplicationBuild extends Build {

  val appName = "myWebapp"
  val appVersion = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    jdbc,
    anorm
  )

  lazy val sjersey = RootProject(uri("git://github.com/FaKod/sjersey-client.git"))

  val main = play.Project(appName, appVersion, appDependencies).dependsOn(sjersey).settings(
    scalaVersion := "2.10.0"
  )

}
Run Code Online (Sandbox Code Playgroud)

然后我运行命令:play reload update但更新失败:

[warn] Binary version (2.10) for dependency org.scala-lang#scala-library;2.10.0
[warn] in myWebapp#myWebapp_2.9.2;1.0-SNAPSHOT differs from Scala binary version in project (2.9.2).
[warn]  module not found: play#play_2.9.2;2.1-RC1              


[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: play#play_2.9.2;2.1-RC1: not found
[warn]  :: play#play-jdbc_2.9.2;2.1-RC1: not found
[warn]  :: play#anorm_2.9.2;2.1-RC1: not found
[warn]  :: play#play-test_2.9.2;2.1-RC1: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[error] (mywebapp/*:update) sbt.ResolveException: unresolved dependency: play#play_2.9.2;2.1-RC1: not found
[error] unresolved dependency: play#play-jdbc_2.9.2;2.1-RC1: not found
[error] unresolved dependency: play#anorm_2.9.2;2.1-RC1: not found
[error] unresolved dependency: play#play-test_2.9.2;2.1-RC1: not found
[error] Total time: 4 s, completed 16 janv. 2013 19:36:37
Run Code Online (Sandbox Code Playgroud)

但当我删除dependsOn精度播放!项目,更新和编译都很好.

我被封锁了,可能是什么问题?

小智 1

如果您不想更新 sjersey scala 版本,您也可以尝试此操作:

object ApplicationBuild extends Build {

  val appName = "myWebapp"
  val appVersion = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    jdbc,
    anorm
  )

  val moreResolvers = resolvers ++= Seq(
    "fakod-releases"   at   "https://raw.github.com/FaKod/fakod-mvn-repo/master/releases",
    "fakod-snapshots"  at   "https://raw.github.com/FaKod/fakod-mvn-repo/master/snapshots")

  val main = play.Project(appName, appVersion, appDependencies).settings(
    moreResolvers,
    libraryDependencies ++= Seq(
      "org.scala-libs" % "sjersey-client" %  "0.2.0" intransitive)

  )

}
Run Code Online (Sandbox Code Playgroud)