2015-09-06 70 views
1

我刚开始学习sbt来构建scala项目。sbt中的项目聚合

这里是我的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/' 

我错过了什么?

+0

这对我来说很好。你使用的是什么版本的sbt?什么OS? – mfirry

+0

Mac Os X.如果我在SbtScalaProjectFoo中没有build.sbt文件,它可以正常工作,否则sbt编译会失败并显示错误。在此之后,我放弃了,并且我会暂时依靠maven来进行依赖管理和构建。我最终希望熟悉sbt,因为它的代码比maven的xml语法更有趣:) –

+0

SbtScalaProjectFoo中的build.sbt文件的外观如何?你需要什么? – mfirry

回答

0

拥有多个build.sbt已被证明对我也有问题。 我会建议将所有项目数据汇总到一个build.sbt中。如果要模块化构建,请考虑将零件移动到(根项目的)项目/目录中的.scala-Files。