为什么项目中有两个不同版本的sbt

为什么项目中有两个不同版本的sbt,sbt,playframework-2.6,Sbt,Playframework 2.6,在我的Play项目中,我注意到build.properties具有sbt版本addSbtPlugin(“com.typesafe.Play”%”sbt plugin“%”2.6.12) 和build.properties具有sbt.version=0.13.15 1) 为什么有两种肠道? 2) 它们之间有什么区别 3) 它们的版本应该不同吗?SBT本身和SBT插件之间存在差异。Play框架是一个简单的框架。在项目/build.properties中指定: sbt.version=0.13.15

在我的
Play
项目中,我注意到
build.properties
具有
sbt
版本
addSbtPlugin(“com.typesafe.Play”%”sbt plugin“%”2.6.12)
build.properties
具有
sbt.version=0.13.15

1) 为什么有两种肠道? 2) 它们之间有什么区别
3) 它们的版本应该不同吗?

SBT本身和SBT插件之间存在差异。Play框架是一个简单的框架。在
项目/build.properties
中指定:

sbt.version=0.13.15
而在
项目/plugins.sbt
中指定了:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")
PlayKeys.playDefaultPort := 9009
Scala Play SBT插件()在
build.SBT
中启用,如下所示:

lazy val root = (project in file(".")).enablePlugins(PlayScala)
SBT插件通过附加有用的任务、命令、设置和依赖项来丰富构建定义。以下是以下几个例子:

例如,要更改Play运行的默认端口,我们可以在
build.sbt
中定义:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")
PlayKeys.playDefaultPort := 9009
注意:升级SBT版本时,我们需要确保它与相应的Play SBT插件兼容,要与SBT1一起使用Play,我们需要将Play
SBT插件更新为
2.6.6

SBT插件最佳实践包含以下命名方案:

sbt-$projectname
例如,
sbt-scoverage
sbt-buildinfo
sbt-release
sbt-assembly
,但Play将其命名为
sbt-plugin
,这可能会令人困惑