3

sbt 0.7.x ビルド スクリプトを sbt 0.11.2 に変換しています。サブプロジェクトからさまざまな JAR をまとめて収集するタスクを作成しています。古いビルドでは、タスクの一部で次のことが行われます。

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

sbt 0.11 で同等のことを行うにはどうすればよいですか?

追加するために更新されました:

特に:

  • 設定/タスクのリストに依存するタスクを作成するにはどうすればよいですか? たとえば、サブプロジェクトのリストからのすべての managedClasspaths に依存するタスクをどのように記述しますか (すべてをタプルにバンドルせずに)。
  • 「提供」とマークされている、またはマークされていない管理されたjarを取得するための特定のスコープはありますか?
4

1 に答える 1

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

デリゲートを見ると、このタスクをさまざまな構成 (たとえばcompile ) にスコープできることがわかります。

> 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))
于 2012-04-24T09:43:29.600 に答える