【发布时间】:2012-05-10 14:21:16
【问题描述】:
所以我在 Scala 中使用 Play 2,设置了一些依赖项,我想我在解决 SBT 中的一个错误。其他人见过这样的吗?
我尝试在 Build.scala 中添加knockoff as directed, 因此:
val knockoff = RootProject(uri("git://github.com/tristanjuricek/knockoff.git"))
val main =
PlayProject(appName, appVersion, appDependencies, mainLang = SCALA)
.dependsOn(knockoff)
然后运行它。出于某种原因,它会寻找源代码和 javadoc jar。 (为什么?)
[warn] [NOT FOUND ] com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(src) (88ms)
[warn] ==== Typesafe Releases Repository: tried
[warn] http://repo.typesafe.com/typesafe/releases/com/tristanhunt/knockoff_2.9.1/0.8.0-16/knockoff_2.9.1-0.8.0-16-sources.jar
[warn] [NOT FOUND ] com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(doc) (86ms)
[warn] ==== Typesafe Releases Repository: tried
[warn] http://repo.typesafe.com/typesafe/releases/com/tristanhunt/knockoff_2.9.1/0.8.0-16/knockoff_2.9.1-0.8.0-16-javadoc.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(src)
[warn] :: com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(doc)
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
这些丢失的罐子不应该是致命的,但它们是:
[error] {file:/home/joel/TEST2/bar/}bar/*:update: sbt.ResolveException: download failed: com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(src)
[error] download failed: com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(doc)
[error] java.util.NoSuchElementException: Either.right.value on Left
[error] Use 'last' for the full log.
这是一些堆栈跟踪:
[error] download failed: com.tristanhunt#knockoff_2.9.1;0.8.0-16!knockoff_2.9.1.jar(doc)
java.util.NoSuchElementException: Either.right.value on Left
at scala.Either$RightProjection.get(Either.scala:229)
at sbt.PlayCommands$$anonfun$56.apply(PlayCommands.scala:606)
at sbt.PlayCommands$$anonfun$56.apply(PlayCommands.scala:593)
at sbt.Command$$anonfun$sbt$Command$$apply1$1$$anonfun$apply$6.apply(Command.scala:74)
at sbt.Command$.process(Command.scala:92)
其他项目作为依赖项工作正常,但不是这个。
【问题讨论】:
-
看看 SBT 分类器只依赖于发布 jars 而不是源代码或 javadoc。看到这个:github.com/harrah/xsbt/wiki/Library-Management
-
具有该依赖项的标准(非 Play)sbt 项目在“更新”时不会显示此错误。从堆栈跟踪(感谢发布它)看来,问题出在 PlayCommands 上,而不是来自 sbt(尽管有包名)。
-
好主意,我尝试设置一个最小的 sbt 项目,看看我是否可以复制你的结果,但我看到了同样的事情。可以看项目here;它只是 sbt 文档中的“hello”项目,添加了这个 RootProject 依赖项。我将控制台输出粘贴到自述文件中。你怎么看?
-
@Brian,库依赖不是我想要的,我真的想要一个子项目,因为我打算分叉它并稍微弄乱它。不过,我不知道如何将图书馆管理理念应用到子项目中。有没有这样的例子?
标签: git scala sbt playframework-2.0