通过libraryDependencies和sbt插件添加依赖项有什么区别?

时间:2019-03-15 09:46:14

标签: scala sbt

我是Scala的新手,试图了解语言和工具的细微差别。我正在浏览https://github.com/swagger-api/swagger-samples/tree/master/scala/scala-play2.4上一个使用play的示例,我注意到play依赖项是这样添加的:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
https://github.com/swagger-api/swagger-samples/blob/master/scala/scala-play2.4/project/plugins.sbt

但是,在其他各种SO帖子中,我看到依存关系也像这样添加到libraryDependencies中:

libraryDependencies ++= Seq("com.typesafe.play" %% "play" % "2.2.2")
https://stackoverflow.com/a/22215070/201657

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.3.4"
https://stackoverflow.com/a/19438083/201657

这两种添加依赖项的技术有什么区别,又意味着什么? TIA。

1 个答案:

答案 0 :(得分:2)

如链接的SO答案中所述,sbt-plugins用于增强构建行为。

在使用addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")的情况下,插件将按照code来修改构建的libraryDependencies。因此,依赖项管理由插件完成。

如果您选择自己进行管理,则可以在不启用com.typesafe.play" % "sbt-plugin的情况下使用关注。

libraryDependencies ++= Seq("com.typesafe.play" %% "play" % "2.4.6")

如果您选择使用sbt启动具有热重载功能的播放应用程序,则应考虑使用sbt-plugin。但是,如果您不关心它,只需将play添加为libraryDependencies