我正在dependsOn
使用托管在 Github 的 git 存储库(“项目 A”)来尝试 sbt 的直接功能。我正在使用稳定的标记引用,并且在我的测试项目(“项目 B”)中,sbt确实从源代码克隆项目 A 并开始编译。然而,编译失败,项目 A 自己的依赖项似乎缺失(即,它似乎没有拾取项目 A 中定义的任何内容build.sbt
)。
这与 maven/ivy 托管依赖项不同吗?我是否需要在我的子项目 B 中包含所有传递依赖项?对我来说听起来有点奇怪。这会扼杀整个工作,因为我有十几个项目 A 所依赖的库。
为了显示:
项目 A(在 Github 上在线作为源):
// build.sbt:
version := "1.2.3"
libraryDependencies += "org.foo" %% "bar" % "1.0"
项目 B(本地):
// project/Build.scala
import sbt._
import Keys._
object Build extends sbt.Build {
lazy val projA = RootProject(uri("git://github.com/me/projA.git#v1.2.3"))
lazy val projB = Project(id = "project-B", base = file(".").dependsOn(projA)
}
这是这样的:
[info] Compiling 678 Scala sources to /Users/me/.sbt/staging/
5666eafa865fdf605be3/target/scala-2.10/classes...
[error] /Users/me/.sbt/staging/5666eafa865fdf605be3/src/main/scala/com/me/
BarKeeper.scala:3: not found: object bar
[error] import org.foo.bar
[error] ^
那么我是否必须重新声明库依赖项"org.foo" %% "bar" % "1.0"
?我希望不是!