基于可用的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 回答
只需将您的代码复制粘贴到文件
project/Build.scala
中并使用sbt run
运行即可 .您确定
Build.scala
位置正确(必须在project
目录中)吗?