Spa*_*key 14 scala sbt playframework-2.0
一个play项目有一个像这样的"project"文件夹:
我一直认为这只是我不应该想太多的生活奥秘之一,但今天我的好奇心得到了我的好处.
谷歌搜索给了我这个提到顶级"项目"文件夹用于sbt配置.我想知道为什么他们没有把那个".sbt"称为".git",为什么在该文件夹之外仍然有一个文件"build.sbt",但我认为让事情真正有意义没有乐趣.
它也没有提到为什么它里面包含另一个"project"文件夹.
为什么有嵌套的"项目"文件夹?
http://www.scala-sbt.org/0.13/tutorial/Organizing-Build.html:
build.sbt隐藏了sbt是如何工作的.sbt构建使用Scala代码定义.必须构建该代码本身.有什么比与sbt更好的方式?
项目目录是构建中的另一个构建,它知道如何构建构建.为了区分构建,我们有时使用正确构建术语来指代您的构建,并使用元构建来引用项目中的构建.metabuild中的项目可以执行任何其他项目可以执行的任何操作.您的构建定义是一个sbt项目.
海龟一路走下去.如果您愿意,可以通过创建项目/项目/目录来调整构建定义项目的构建定义.
SBT是递归的。它使用 scala 代码定义项目的构建属性。scala 代码应该放在哪里?到当前项目内的另一个项目。但如果项目定义本身是一个正确的项目,那么它可以使用另一个 sbt 配置进行配置。等等。Scala 开发人员喜欢递归结构。
您可以更改嵌套(元意义上)项目的 scala 编译器版本、scala 编译器选项。它可能会改变元项目的解释方式,并可能影响最上面的项目。