如何在SBT中将依赖关系设置为运行时(以模仿Maven中的运行时范围)?

Phi*_*hil 3 sbt

runtime在Maven项目中有一个依赖范围:

<dependency>
  <groupId>org.docbook</groupId>
  <artifactId>docbook-xml</artifactId>
  <version>4.4</version>
  <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我怎样才能在SBT中表达这一点?

Jac*_*ski 8

您应该为依赖项使用运行时配置,build.sbt如下所示:

libraryDependencies += "org.docbook" % "docbook-xml" % "4.4" % "runtime"
Run Code Online (Sandbox Code Playgroud)

有了这个,classpath应该正确设置 - show managedClasspathfor compileruntime配置来验证它:

[sbt-13-0-1]> help dependencyClasspath
The classpath consisting of internal and external, managed and unmanaged dependencies.
[sbt-13-0-1]> show managedClasspath
[info] List(Attributed(/Users/jacek/.sbt/boot/scala-2.10.3/lib/scala-library.jar))
[success] Total time: 0 s, completed Jan 1, 2014 12:10:57 AM
[sbt-13-0-1]> show runtime:managedClasspath
[info] List(Attributed(/Users/jacek/.sbt/boot/scala-2.10.3/lib/scala-library.jar), Attributed(/Users/jacek/.ivy2/cache/org.docbook/docbook-xml/jars/docbook-xml-4.4.jar))
[success] Total time: 0 s, completed Jan 1, 2014 12:11:01 AM
Run Code Online (Sandbox Code Playgroud)