2012-02-29 26 views

Respuesta

5

En nuestro proyecto utilizamos la tarea de actualización para obtener las dependencias de bibliotecas:

(update) map { 
    (updateReport) => 
    updateReport.select(Set("compile", "runtime")) foreach { srcPath => /* do something with it */ } 
} 

Esperanza esto ayuda para empezar.

[EDIT] Aquí es un ejemplo sencillo de cómo agregar esta funcionalidad a su tarea:

val depsTask = TaskKey[Unit]("find-deps", "finds the dependencies") 

val testConf = config("TestTasks") hide 

private lazy val testSettings = inConfig(testConf)(Seq(
    depsTask <<= (update) map { 
     (updateReport) => 
      updateReport.select(Set("compile", "runtime")) foreach { srcPath => println("src path = " + srcPath) } 
    } 
)) 

utilizar la tarea sólo tiene que añadir testSettings a su proyecto.

Para obtener más información sobre las tareas, consulte el sbt documentation. Se puede encontrar más información sobre la tarea de actualización en here.

[EDIT2] La tarea de actualización solo obtiene las dependencias de la biblioteca. Nunca probé dependencias de proyecto externas (como un repositorio git). Tal vez necesite algo como lo siguiente: find project artifacts. La tarea allTheArtifacts encuentra los artefactos del proyecto y los artefactos de sus dependencias de proyecto.

+0

¿Y cómo debería usar este fragmento? Solo colocarlo dentro de la tarea no funciona. – Rogach

+0

¡Gracias, funciona a la perfección! – Rogach

+0

No es lo suficientemente impecable :(No detecta las dependencias uri ("git: // ..."). – Rogach

Cuestiones relacionadas