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

Han*_*Sun 5 sbt playframework-2.0

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

我认为两者都有效.有什么理由让我更喜欢一个到另一个吗?

Mar*_*ier 6

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


Jac*_*ski 2

和之间几乎没有区别——毕竟它们都是,但它们的位置会影响它们配置项目构建的方式和部分。build.sbtproject/build.sbtbuild.sbt

引用sbt 是递归的

project目录是项目中的另一个项目,它知道如何构建您的项目。里面的项目project(理论上)可以做任何其他项目可以做的事情。您的构建定义是一个 sbt 项目。

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

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

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

海龟们一路往下走。

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

简而言之,如果您想在构建定义中设置一个键,您应该使用.sbtproject/*.scala与构建定义对应的级别的文件。如果这是您项目的顶级构建定义,请build.sbt在根目录中查找。

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