2012-04-23 3 views
2

Я конвертирую скрипт сборки sbt 0.7.x в sbt 0.11.2. Я пишу задачу собрать различные JAR вместе из подпроектов. В старой сборке, часть задачи выполняет следующие действия:Доступ к управляемому кластеру подпроектов sbt

deployedProjects.foreach { 
    p: BasicScalaProject => 
    p.managedClasspath(config("compile")) --- p.managedClasspath(config("provided")) 
    // etc 
} 

Как я могу сделать эквивалент в SBT 0.11?

Обновлено добавить:

В частности:

  • Как я могу написать задачу, которая зависит от списка настроек/задач? Например, как мне написать задачу, которая зависит от всех управляемых классовых объектов из списка подпроектов (без объединения всего этого в кортеж).
  • Есть ли определенная область для получения управляемых банок, которые обозначены или не отмечены как «предоставленные»?

ответ

0

В SBT 0.11.x есть задача managedClasspath:

> inspect managed-classpath 
[info] Task: scala.collection.Seq[sbt.Attributed[java.io.File]] 
[info] Description: 
[info] The classpath consisting of external, managed library dependencies. 
[info] Provided by: 
[info] {file:/Users/heiko/tmp/test/}default-f3fb6c/compile:managed-classpath 
[info] Dependencies: 
[info] compile:classpath-configuration 
[info] compile:classpath-types 
[info] compile:update 
[info] Reverse dependencies: 
[info] compile:external-dependency-classpath 
[info] Delegates: 
[info] compile:managed-classpath 
[info] *:managed-classpath 
[info] {.}/compile:managed-classpath 
[info] {.}/*:managed-classpath 
[info] */compile:managed-classpath 
[info] */*:managed-classpath 
[info] Related: 
[info] test:managed-classpath 
[info] runtime:managed-classpath 

Глядя на делегатов вы видите, что вы можете масштабы этой задачи в различных конфигурациях, например, компилировать:

> show compile:managed-classpath 
[info] Updating {file:/Users/heiko/tmp/test/}default-f3fb6c... 
[info] Resolving org.scala-lang#scala-library;2.9.1 ... 
[info] Done updating. 
[info] ArraySeq(Attributed(/Users/heiko/.sbt/boot/scala-2.9.1/lib/scala-library.jar)) 
+0

спасибо, но я до сих пор не знаю точно, как добиться того, что я был после - я обновил вопрос, чтобы быть более точным. –