【问题标题】:Project aggregation in sbtsbt 中的项目聚合
【发布时间】:2015-12-02 04:21:42
【问题描述】:

我刚刚开始学习 sbt 来构建 scala 项目。

这是我的 build.sbt 文件

lazy val commonSettings = Seq(
  organization := "com.example",
  version := "0.1.0",
  scalaVersion := "2.11.7"
)

lazy val task = taskKey[Unit]("An example task")


lazy val root = project.in(file(".")).
  aggregate(core).
  settings(commonSettings: _*).
  settings(
    task := { println("Hello!") },
    name := "hello",
    version := "1.0"
  )

  lazy val core = project.in( file("SbtScalaProjectFoo") )

我的项目结构如下

  SbtScalaProject
  |--SbtScalaProjectFoo
     |--build.sbt
  |--build.sbt

当我尝试在 SbtScalaProject 中运行“sbt”时,我得到以下信息

No project 'core' in 'file:/Users/asattar/Dev/work/SbtScalaProject/'

我错过了什么?

【问题讨论】:

  • 这对我来说很好用。您使用的是哪个版本的sbt?什么操作系统?
  • Mac Os X。如果我在 SbtScalaProjectFoo 中没有 build.sbt 文件,它可以正常工作,否则 sbt 编译失败并出现错误。在此之后我放弃了 sbt,我将暂时坚持使用 maven 进行依赖管理和构建。不过,我确实想最终熟悉 sbt,因为它的代码比 maven 的 xml 语法更有趣:)
  • SbtScalaProjectFoo 中的 build.sbt 文件长什么样?你需要它做什么?

标签: scala sbt


【解决方案1】:

事实证明,拥有多个 build.sbt 也会给我带来麻烦。 我建议将所有项目数据聚合到一个 build.sbt 中。如果您想模块化构建,请考虑将部分移动到(根项目的)project/ 目录中的 .scala-Files 中。

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 2015-09-05
    • 2015-05-28
    • 2014-06-24
    • 1970-01-01
    • 2016-03-05
    • 2017-04-18
    • 2019-01-22
    • 2013-11-06
    相关资源
    最近更新 更多