我可以在另一个多项目中拥有一个sbt多项目吗?

时间:2013-04-10 11:23:31

标签: scala sbt

这似乎不起作用。我想要的主要原因是在多个多项目中共享“publishTo”或“凭证”等常用设置。

拥有像这样的项目结构

root
  |--L1
      |--L2

我想在L1中定义设置并在L2中使用它们以及在root中定义设置并在L1和L2中使用它们。

1 个答案:

答案 0 :(得分:0)

通常,您可以在任何子项目的构建级别共享设置,方法是在项目根目录的in ThisBuild文件中指定build.sbt,如http://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html#sharing-settings中所述

但这只能在所有项目中分享价值。

在您的情况下,如果您已在Build.scala

中将项目定义为以下内容
import sbt._
import Keys._

object MyBuild extends Build {
    lazy val root = Project(id = "root",
                            base = file("."))

    lazy val L1 = Project(id = "L1",
                           base = file("L1"))

    lazy val L2 = Project(id = "L2",
                           base = file("L1/L2"))
}

如果您想重用publishToL1中定义的密钥(例如L2),则会在L2 {{1}中写下以下一行}}

build.sbt

您可以使用sbt中的publishTo <<= publishTo in L1 命令检出键值及其设置方式。

inspect