【问题标题】:What is the difference between adding a dependency via libraryDependencies versus an sbt plugin?通过 libraryDependencies 添加依赖项与通过 sbt 插件添加依赖项有什么区别?
【发布时间】:2019-08-06 08:42:24
【问题描述】:

我是一名 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。

【问题讨论】:

标签: scala sbt


【解决方案1】:

如链接的 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 来启动具有热重载功能的 play 应用程序,您应该考虑使用 sbt-plugin。但是如果你不关心它,只需将play添加为libraryDependencies即可。

【讨论】:

  • 我确实想要热重载,所以我会坚持使用插件
猜你喜欢
  • 2016-03-19
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多