sbt未解析的可传递依赖项

sbt未解析的可传递依赖项,sbt,Sbt,我似乎无法正确配置SBT来解析项目所依赖的根项目的可传递依赖项。问题似乎是解决者。我已经能够用一个非常简单的结构来复制它。请参阅下面的代码 在common/I内部,我可以运行sbt控制台,它将解决依赖关系,我可以使用它。但是,在项目内部,相同的命令失败。具有未解析的依赖项。但是我的edofic快照冲突解决程序未列在已尝试的冲突解决程序中。不知怎么的,它没有被捡起来。如果我将解析器手动添加到Build.scala中,它会起作用,但这会破坏传递依赖的目的 ├── common │   └── bui

我似乎无法正确配置SBT来解析项目所依赖的根项目的可传递依赖项。问题似乎是解决者。我已经能够用一个非常简单的结构来复制它。请参阅下面的代码

在common/I内部,我可以运行
sbt控制台
,它将解决依赖关系,我可以使用它。但是,在项目内部,相同的命令失败。具有
未解析的依赖项
。但是我的
edofic快照
冲突解决程序未列在已尝试的冲突解决程序中。不知怎么的,它没有被捡起来。如果我将解析器手动添加到Build.scala中,它会起作用,但这会破坏传递依赖的目的

├── common
│   └── build.sbt
└── proj
    └── project
        └── Build.scala
common/build.sbt

proj/project/Build.scala


只是想澄清一下:我想为“common”单独配置SBT,我不想在本地发布它——我想让SBT在需要时处理增量重新编译。RootProject是这份工作的错误工具吗?

这里有一个解决方案对我很有效,但它可能会破坏其他东西:
在proj/project/Build.scala中,向项目定义中添加一个“委托”参数,如下所示:

val main = Project(id = "main", base = file("."), 
                   delegates = common :: Nil).settings(
  scalaVersion := "2.10.0"
) dependsOn common
我认为这可能会导致您的“主”项目从“公共”项目中获取所有配置,因此我不确定这可能会产生什么副作用。因此,我为我的项目选择的解决方案是拥有一个“配置”项目,该项目对我的所有项目都具有公共配置,并在该项目中使用“委托”,这样我就可以控制正在获取的配置

import sbt._
import Keys._

object BarBuild extends Build {
  val common = RootProject(file("../common"))

  val main = Project(id = "main", base = file(".")).settings(
    scalaVersion := "2.10.0"
  ) dependsOn common
}
val main = Project(id = "main", base = file("."), 
                   delegates = common :: Nil).settings(
  scalaVersion := "2.10.0"
) dependsOn common