2012-02-29 10 views

risposta

5

Nel nostro progetto utilizziamo l'attività di aggiornamento per ottenere le dipendenze delle librerie:

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

Spero che questo aiuti per un inizio.

[EDIT] Ecco un semplice esempio come aggiungere questa funzionalità per il vostro compito:

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) } 
    } 
)) 

Per utilizzare l'attività è sufficiente aggiungere testSettings al progetto.

Per ulteriori informazioni sulle attività, vedere sbt documentation. Ulteriori informazioni sull'attività di aggiornamento possono essere trovate here.

[EDIT2] L'attività di aggiornamento ottiene solo le dipendenze della libreria. Non ho mai provato le dipendenze esterne del progetto (come in un repository git). Forse hai bisogno di qualcosa di simile al seguente: find project artifacts. L'attività allTheArtifacts trova le risorse del progetto e le risorse delle dipendenze del progetto.

+0

E come devo usare questo snippet? Basta posizionarlo all'interno dell'attività non funziona. – Rogach

+0

Grazie, funziona perfettamente! – Rogach

+0

Non abbastanza impeccabilmente :(Non cattura le dipendenze uri ("git: // ..."). – Rogach

Problemi correlati