`./ build.sbt`和`./project/build.sbt`有什么区别?

时间:2014-12-15 16:45:49

标签: playframework-2.0 sbt

例如,我想在构建定义中设置一个键,我应该将该设置放入哪一个?根目录中的build.sbt?或build.sbt目录中的project

我认为两者都有效。我有什么理由可以选择其中一个吗?

2 个答案:

答案 0 :(得分:6)

project文件夹不应包含build.sbt,仅包含plugins.sbt.scala个文件。 Scala文件通常用于创建一些具有val的公共对象,这些val在整个项目中的多个构建中使用。我还经常创建一个dev.sbt,其中包含我用于开发的插件,并且该文件不受版本控制。

答案 1 :(得分:1)

build.sbtproject/build.sbt之间的差不多没有区别 - 毕竟它们都是build.sbt,但它们的位置会对如何以及如何产生影响他们正在配置的项目构建的一部分。

引用sbt is recursive

  

project目录是项目中的另一个项目   知道如何建立你的项目。 project内的项目可以(在   理论)做任何其他项目可以做的事情。 您的构建定义是   一个sbt项目。

     

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

使用sbt为项目设置构建有两种直接方法 - 项目主目录中包含.sbt个文件和project/*.scala个文件。所有这些文件构成了构建。

然而,有一种方法可以为刚刚配置的构建设置构建并应用相同的规则 - 您可以使用(注意位置之前的project目录)project/*.sbt和{{1文件。

And the turtles go all the way down.

要扩展项目的构建,您可能需要使用sbt插件 - 捆绑在一起的构建配置以简化其安装。它们是项目构建的一部分(构建有意加倍)。按照惯例,插件安装在project/project/*.scala中,但 project/plugins.sbt目录下的任何 .sbt文件都可以。

为了简化故事,如果想要在构建定义中设置密钥,则应使用与project.sbt文件对应的级别构建定义。如果这是项目的顶级构建定义,请在根目录中找到 project/*.scala

请记住,build.sbt下的任何构建定义都会成为项目构建定义的一部分。 [海龟一路走下去] [3],还记得吗?