Playframework 2.0 “./build.sbt”和“./project/build.sbt”之间有什么区别?

Playframework 2.0 “./build.sbt”和“./project/build.sbt”之间有什么区别?,playframework-2.0,sbt,Playframework 2.0,Sbt,例如,我想在构建定义中设置一个键,我应该将该设置放在哪个键中?根目录中的build.sbt?或者project目录中的build.sbt 我认为两者都会起作用。有什么理由让我更喜欢其中一个吗?项目文件夹不应该包含build.sbt,只包含plugins.sbt和.scala文件。Scala文件通常用于创建一些具有VAL的公共对象,这些VAL在整个项目的多个构建中使用。我还通常创建一个dev.sbt,其中包含我用于开发的插件,并且该文件不受版本控制。build.sbt和project/build.

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


我认为两者都会起作用。有什么理由让我更喜欢其中一个吗?

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

build.sbt和
project/build.sbt
之间几乎没有区别——毕竟它们都是
build.sbt
,但是,它们的位置决定了它们配置项目构建的方式和部分

引述:

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

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

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

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

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

简而言之,如果要在生成定义中设置键,应在与生成定义对应的级别上使用
.sbt
project/*.scala
文件。如果这是项目的顶级生成定义,请在根目录中选择
build.sbt


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

你为什么不把
dev.sbt
放在
~/.sbt/0.13
下面?这将为将来的其他项目节省很多时间设置dev sbt配置。不是每个项目都应该加载这些插件,也不是每个项目都与每个插件版本兼容。全局插件设置只会让事情变得复杂。这一点很有道理。我认为这正是autoplugins=的原因,因此最终用户不需要知道插件依赖性。