SBT sub / build.sbt导入root / build.sbt对任务的依赖关系

时间:2017-03-07 20:45:59

标签: scala sbt

我有一个任务,我想访问外部包(进行反射以查找扩展该包的特定特征的所有类)

包在我的父项目中沿着为所有子项目设置的所有其他依赖项定义。

像这样:

根/ build.sbt:

val scalaCss = "com.github.japgolly.scalacss" %% "core" % "0.5.1"

lazy val subproject = (project in file("subproject"))
...
.settings(
...
, libraryDependencies += scalaCss)

子项目/ build.sbt

lazy val myAwesomeTask = TaskKey[Unit]("myAwesomeTask")

myAwesomeTask := {
    import scalaCss.Defaults._
    val standalones = typeOf[scalacss.internal.mutable.StyleSheet.Standalone.Standalone]
  }

现在css.Defaults._无法解决

如何更改,以便在任务中可用?

我希望在子项目build.sbt中指定具体任务,但不要在那里放置任何依赖项。

由于子项目本身已在root/build.sbt中定义,因此我认为无法在此处指定其他依赖项。我可以以某种方式将root/build.sbt导入我的subproject/build.sbt吗?

1 个答案:

答案 0 :(得分:1)

不确定它是否可行,但您可以尝试将常用设置放在单独的def文件中,然后尝试(从两个构建文件中):

val sub = Project( id = "sub" , base = file(".")).addSbtFiles("<path/to/common.sbt>")