2011-06-28 10 views
5

Tengo un proyecto que declara SBT 0.10.0 unos dependencias algo como:Cómo obtener la lista de los tarros de dependencia de un SBT 0.10.0 proyecto

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, ...) 

    ... 
} 

Deseo creat una regla de construcción para reunir toda las dependencias jar de "proj", de modo que pueda enlazarlas simbólicamente a un único directorio.

Gracias.

+0

¿El valor de 'libraryDependencies'? Creo que puede iniciar sbt en la línea de comandos y escribir lib + y obtener sugerencias. – eivindw

+0

Sé que OP preguntó acerca de sbt 10.0, pero para otros, solo noté que en 11.3 puede obtener la ruta de clase con "sbt classpath". – Traveler

Respuesta

8

tarea Ejemplo SBT para imprimir plena ruta de clases de tiempo de ejecución

continuación es más o menos lo que estoy usando. La tarea "get-jars" es ejecutable desde el prompt 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) 
) 
} 

Otros recursos

  • Unofficial guide a SBT 0,10.
  • Keys.scala define las teclas predefinidas. Por ejemplo, es posible que desee reemplazar fullClasspath con managedClasspath.
  • This plugin define un comando simple para generar un archivo .ensime, y puede ser una referencia útil.
+2

¡Gracias! Ese enlace de guía no oficial es genial desearía haberlo encontrado antes. Por cierto, tienes un nombre increíble. – crelbor

+0

Gracias! Encantado de ayudar. –

Cuestiones relacionadas