Scala sbt直接git源依赖项-不获取可传递的库依赖项?
我正在用Github托管的git存储库(“项目a”)试用sbt的directScala sbt直接git源依赖项-不获取可传递的库依赖项?,scala,sbt,Scala,Sbt,我正在用Github托管的git存储库(“项目a”)试用sbt的directdependsOn功能。我正在使用一个稳定的标记引用,在我的测试项目(“项目B”)中,sbt从源代码克隆项目a并开始编译。但是,编译失败,项目A自身的依赖项似乎丢失(即,它似乎没有拾取项目A的build.sbt中定义的任何内容) 这与maven/ivy管理的依赖项不同吗?我是否需要在我的子项目B中包含所有可传递依赖项?听起来有点奇怪。这可能会扼杀整个工作,因为我有十几个库,项目a依赖于这些库 举例说明: 项目A(在Gi
dependsOn
功能。我正在使用一个稳定的标记引用,在我的测试项目(“项目B”)中,sbt从源代码克隆项目a并开始编译。但是,编译失败,项目A自身的依赖项似乎丢失(即,它似乎没有拾取项目A的build.sbt
中定义的任何内容)
这与maven/ivy管理的依赖项不同吗?我是否需要在我的子项目B中包含所有可传递依赖项?听起来有点奇怪。这可能会扼杀整个工作,因为我有十几个库,项目a依赖于这些库
举例说明: 项目A(在Github上作为来源在线): 项目B(本地): 这是这样的:
[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”
上重新声明库依赖关系?我希望不是 这纯粹是我自己的错,不是sbt的错。我曾在项目A中监督过一个非托管库(文件夹lib
)。在将其交换为Maven托管版本(文件夹lib\u托管
)后,项目A现在在项目B的暂存中从源代码正确编译。我在一些项目中使用了此功能,但从未出现过此问题。建议:确保build.sbt位于根目录中;创建Build.scala并在那里声明依赖项。当然,我假设你能分出项目A不是什么大问题。@pedrofurla好的,这首先是个好消息,因为它在理论上应该是可行的。我确实在根目录中有build.sbt
,并且项目A没有单独的project/build.scala
。所以我想这一定是sbt中的一些小故障吧?retrievedManaged:=true
会是一个问题吗(我在每个项目中都使用它,因为这是我能够明智地监督库版本和快照而不是稳定的东西的唯一方法)?
// 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] ^