首页 文章

无法从“完整配置”生成SBT 0.11的源代码

提问于
浏览
26

基于可用的sbt 0.11.0文档("Common Tasks" wiki page和其他),在看到如何在Scalaz SBT build和_2365196中完成后,我无法弄清楚为什么我的简单示例不起作用:

import sbt._
import Keys._

object MyBuild extends Build {

  lazy val project = Project(
    id = "root", 
    base = file("."),
    settings = Defaults.defaultSettings ++ Seq(
      (sourceGenerators in Compile) <+= (sourceManaged in Compile) map { dir =>
        val file = dir / "bla.scala"
        IO.write(file, """object Bla extends App { println("bla!") }""")
        Seq(file)
      }
    )
  )

}

把它放在一个空项目的project / build.scala上并运行“sbt compile”生成/编译什么都没有,“sbt run”抱怨它找不到任何主类 .

现在,如果我将设置放在“快速配置”build.sbt中,而不是如上所述的完整配置,它就可以正常工作 .

(sourceGenerators in Compile) <+= (sourceManaged in Compile) map { dir =>
    val file = dir / "bla.scala"
    IO.write(file, """object Bla extends App { println("bla!") }""")
    Seq(file)
}

显然,至少在我看来,需要在“完全配置”项目中创建build.sbt文件是不可取的 .

那么,为什么这个设置不能在完整配置下工作呢?

1 回答

  • 2

    只需将您的代码复制粘贴到文件 project/Build.scala 中并使用 sbt run 运行即可 .

    您确定 Build.scala 位置正确(必须在 project 目录中)吗?

相关问题