SBT目录结构。什么是“项目”?

时间:2015-12-13 18:16:59

标签: scala playframework-2.0 sbt

播放项目有一个“项目”文件夹,如下所示:

  • 项目
    • 项目

我一直认为这只是我不应该想太多的生活奥秘中的一个,但今天我的好奇心得到了我最好的。

谷歌搜索给了我this,其中提到顶级“项目”文件夹用于sbt配置。我想知道为什么他们没有把那个“.sbt”称为“.git”,为什么在该文件夹之外仍然有一个文件“build.sbt”,但我认为让事情真正有意义没有乐趣。

它也没有提到为什么它里面包含另一个“project”文件夹。

为什么有嵌套的“项目”文件夹?

2 个答案:

答案 0 :(得分:8)

http://www.scala-sbt.org/0.13/tutorial/Organizing-Build.html

  

build.sbt隐藏了sbt是如何工作的。 sbt构建使用Scala代码定义。必须构建该代码本身。还有什么比sbt更好的方式?

     

项目目录是构建中的另一个构建,它知道如何构建构建。为了区分构建,我们有时使用正确构建术语来指代您的构建,并使用元构建来引用项目中的构建。 metabuild中的项目可以执行任何其他项目可以执行的任何操作。您的构建定义是一个sbt项目。

     

海龟一路走下去。如果您愿意,可以通过创建项目/项目/目录来调整构建定义项目的构建定义。

答案 1 :(得分:2)

SBT 是递归的。它使用scala代码定义项目的构建属性。放置scala代码的位置?到当前项目内的另一个项目。但是如果项目定义本身是一个合适的项目,那么它可以配置另一个sbt配置。等等。 Scala的人喜欢递归结构。

您可以更改嵌套(在元意义上)项目中的scala编译器版本,scala编译器选项。它可能会改变元项目的解释方式,并且可能会影响最重要的项目。