如何从sbt 0.10.0项目获取依赖项jar列表

cre*_*bor 5 scala friend sbt

我有一个sbt 0.10.0项目,它声明了一些依赖项,有点像:

object MyBuild extends Build {
    val commonDeps = Seq("commons-httpclient" % "commons-httpclient" % "3.1",
                         "commons-lang" % "commons-lang" % "2.6")

    val buildSettings = Defaults.defaultSettings ++ Seq ( organization := "org" )

    lazy val proj = Project("proj", file("src"),
        settings = buildSettings ++ Seq(
            name                    := "projname",
            libraryDependencies     := commonDeps, ...)

    ...
}
Run Code Online (Sandbox Code Playgroud)

我希望创建一个构建规则来收集"proj"的所有jar依赖项,以便我可以将它们符号链接到单个目录.

谢谢.

Kip*_*ros 8

示例SBT任务打印完整运行时类路径

以下是我正在使用的内容."get-jars"任务可以从SBT提示符执行.

import sbt._
import Keys._
object MyBuild extends Build {
  // ...
  val getJars = TaskKey[Unit]("get-jars")
  val getJarsTask = getJars <<= (target, fullClasspath in Runtime) map { (target, cp) =>
    println("Target path is: "+target)
    println("Full classpath is: "+cp.map(_.data).mkString(":"))
  }
  lazy val project = Project (
    "project",
    file ("."),
    settings = Defaults.defaultSettings ++ Seq(getJarsTask)
  )
}
Run Code Online (Sandbox Code Playgroud)

其他资源

  • sbt 0.10的非官方指南.
  • Keys.scala定义了预定义的键.例如,您可能想要替换fullClasspathmanagedClasspath.
  • 此插件定义了一个生成.ensime文件的简单命令,可能是一个有用的参考.

  • 谢谢!那个非官方的指南链接是我以前找到它的伟大愿望.顺便说一句,你有一个很棒的名字. (2认同)