我有一个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, ...)
...
}
我希望创建一个构建规则来收集“proj”的所有jar依赖项,以便我可以将它们符号链接到一个目录。
感谢。
答案 0 :(得分: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)
)
}
其他资源
fullClasspath
替换为managedClasspath
。