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

问题描述 投票:1回答:1

在我的Play项目中,我注意到build.propertiessbt版本addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12") build.propertiessbt.version=0.13.15

1)为什么有两个条目? 2)他们之间有什么区别3)他们的版本应该不同吗?

sbt playframework-2.6
1个回答
0
投票

SBT本身和SBT插件之间存在差异。 Play Framework是一个SBT pluginversion of SBTproject/build.properties中指定:

sbt.version=0.13.15

version of Play SBT pluginproject/plugins.sbt中指定:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")

Scala Play SBT插件(PlayScala)在build.sbt中启用,如下所示:

lazy val root = (project in file(".")).enablePlugins(PlayScala)

SBT插件通过其他有用的任务,命令,设置和依赖项丰富了构建定义。以下是Play SBT plugin的一些例子:

object PlayKeys {
  val playDefaultPort = SettingKey[Int]("playDefaultPort", "The default port that Play runs on")
  val playDefaultAddress = SettingKey[String]("playDefaultAddress", "The default address that Play runs on")
  val playRunHooks = TaskKey[Seq[PlayRunHook]]("playRunHooks", "Hooks to run additional behaviour before/after the run task")
  ...

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

PlayKeys.playDefaultPort := 9009

请注意,升级SBT版本时,我们需要确保它与相应的Play SBT插件兼容。 For example,要使用Play with SBT 1,我们需要更新Play sbt-plugin2.6.6

SBT插件最佳实践artifact naming convention鼓励以下命名方案:

sbt-$projectname

例如,sbt-scoveragesbt-buildinfosbt-releasesbt-assembly,然而Play将其命名为sbt-plugin,这可能会令人困惑。

© www.soinside.com 2019 - 2024. All rights reserved.