7

在阅读build.sbt许多 Web 应用程序时,经常会看到标记为 的依赖项"provided",例如sbt-assembly 文档

“org.apache.spark”%%“spark-core”%“0.8.0-incubating”%“提供”

我在 SBT 文档中找不到任何提及,但是Maven 文档说明了以下内容:

  • 假如

这很像 compile,但表明您希望 JDK 或容器在运行时提供依赖项

然而,有时我也看到"container"了相同的位置,比如在这个 build.sbt中。这是同一件事吗?

val tomcatVersion = "7.0.53"

libraryDependencies ++= Seq(
  "org.apache.tomcat.embed" % "tomcat-embed-core"         % tomcatVersion % "container",
  "org.apache.tomcat.embed" % "tomcat-embed-logging-juli" % tomcatVersion % "container",
  "org.apache.tomcat.embed" % "tomcat-embed-jasper"       % tomcatVersion % "container",
  "org.apache.tomcat" % "tomcat-catalina" % tomcatVersion % "provided",
  "org.apache.tomcat" % "tomcat-coyote"   % tomcatVersion % "provided"
)
4

1 回答 1

4

依赖项的第四个元素将依赖项与配置相关联;建立配置依赖关系。它起源于ivy,它在sbt内部使用。

容器”配置xsbt-web-plugin版本 0.9定义,它被引入您在此处引用的项目中。它用于为sbt container:start.

顺便说一句 - 运行时必须提供与“提供的”配置相对应的运行时库,这些配置在编译阶段使用,但不包含在生成的工件的传递依赖项中。

于 2016-11-12T20:36:23.190 回答