В нашем проекте мы используем задачу обновления, чтобы получить зависимости библиотеки:
(update) map {
(updateReport) =>
updateReport.select(Set("compile", "runtime")) foreach { srcPath => /* do something with it */ }
}
Надеюсь, это поможет для начала.
[EDIT] Вот простой пример того, как добавить эту функцию в вашу задачу:
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) }
}
))
Чтобы использовать задачу, просто добавьте testSettings в ваш проект.
Подробнее о задачах см. Документацию sbt . Более подробную информацию о задаче обновления можно найти здесь .
[EDIT2] Задача обновления получает только зависимости библиотеки. Я никогда не пробовал внешний
зависимости проекта (как в git-репозитории). Может быть, вам нужно что-то вроде следующего: найти артефакты проекта . Задача allTheArtifacts находит артефакты проекта и артефакты его зависимостей проекта.