【问题标题】:Cannot "project gostats" in multi-project build with ProjectRef in SBT?不能在 SBT 中使用 ProjectRef 在多项目构建中“项目 gostats”?
【发布时间】:2014-01-11 21:36:57
【问题描述】:

我有以下 Build 项目定义,用于设置多项目构建:

import sbt._
import Keys._

object Build extends Build {
  lazy val gostats = ProjectRef(id = "gostats", base = file("modules/gostats_0.1"))

  lazy val godeploy = Project(id = "godeploy", base = file("."))
    .aggregate(gostats).dependsOn(gostats)
}

这编译得很好,但我无法在 SBT 控制台中运行 project gostats。

如果我将gostats 的ProjectRef 更改为Project,gostats 将不再编译,因为在这种情况下 SBT 会忽略我的项目设置。

我怎样才能两全其美?

【问题讨论】:

    标签: sbt


    【解决方案1】:

    如果您使用 SBT 0.13.x,您可以在 build.sbt 中定义 Multi-Project Builds。这是在您的对象 Build 之后定义 godeploy 和 gostats 的一个。

    lazy val godeploy = project in file(".") aggregate gostats dependsOn gostats
    
    lazy val gostats = project in file("modules") / "gostats_0.1"
    

    有了这个,我可以project 没有错误的项目。

    [godeploy]> projects
    [info] In file:/Users/jacek/sandbox/so/multi-0.13.1-project-ref/
    [info]   * godeploy
    [info]     gostats
    [godeploy]> project gostats
    [info] Set current project to gostats (in build file:/Users/jacek/sandbox/so/multi-0.13.1-project-ref/)
    [gostats]> projects
    [info] In file:/Users/jacek/sandbox/so/multi-0.13.1-project-ref/
    [info]     godeploy
    [info]   * gostats
    [gostats]> compile
    [info] Updating {file:/Users/jacek/sandbox/so/multi-0.13.1-project-ref/}gostats...
    [info] Resolving org.fusesource.jansi#jansi;1.4 ...
    [info] Done updating.
    [success] Total time: 0 s, completed Jan 11, 2014 2:23:34 PM
    

    SBT 还为我创建了项目目录结构,因为我只从 build.sbt 和 project/build.properties 文件开始。

    jacek:~/sandbox/so/multi-0.13.1-project-ref
    $ tree -L 2
    .
    ├── build.sbt
    ├── modules
    │   └── gostats_0.1
    └── project
        └── build.properties
    
    3 directories, 2 files
    

    【讨论】:

    • 谢谢。那非常有帮助。我没想过改用build.sbt。现在我的依赖项工作正常,我可以切换项目了。
    猜你喜欢
    • 1970-01-01
    • 2016-10-01
    • 2018-04-10
    • 2013-12-20
    • 2018-05-25
    • 1970-01-01
    • 2021-05-28
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多