在阅读许多网络应用程序的build.sbt
时,人们通常可以看到标记为"provided"
的依赖关系,例如, sbt-assembly documentation:
“org.apache.spark”%%“spark-core”%“0.8.0-孵化”%“提供了”
我无法在SBT文档中找到任何提及,但Maven documentation说明了以下内容:
- 提供
这很像compile,但表示您希望JDK或容器在运行时提供依赖性
但有时我也会在同一位置看到"container"
,例如this 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"
)
答案 0 :(得分:3)
依赖关系的第四个元素将依赖关系与配置相关联;建立configuration dependency。它源自ivy,sbt
在内部使用。
"容器"配置由。定义
xsbt-web-plugin
version 0.9,会引入您引用的项目here。
它用于为sbt container:start
建立容器/托管运行时。
顺便说一下 - 运行时必然会提供与"提供的"相对应的运行时库。配置,它们在编译阶段使用,但未包含在生成的工件的传递依赖项中。