2

出力として jar ファイル (package-src など) を使用して別のタスクに依存するタスクを作成したいのですが、結果の jar をどこかに抽出しますか?

注: 抽出の実行に使用されるライブラリ/メソッドには関心がありません。そのようなライブラリまたはメソッドを呼び出すタスクをどのように定義するかだけに関心があります。

4

1 に答える 1

3

関連するドキュメント ページはTasksおよびTaskInputsです。解凍には、 を使用できますsbt.IO.unzip(...)

まず、タスクのキーを (.scalaビルド定義で) 定義する必要があります。このタスクは、解凍されたファイルのセットを返します。

val unzipPackage = TaskKey[Set[File]]("unzip-package", "unzips the JAR generated by package-src")

次に、次のような設定を追加します。

unzipPackage <<= (packageSrc, target in unzipPackage, streams) map { (zipFile, dir, out) =>
  IO createDirectory dir  
  val unzippedFiles = IO unzip (zipFile, dir, AllPassFilter)
  out.log.info("Unzipped %d files of %s to %s" format (unzippedFiles size, zipFile, dir))
  unzippedFiles
}

これにより、出力ディレクトリも設定として定義できます。

target in unzipPackage <<= target / "unzippedPackage"

お役に立てれば。

于 2013-02-21T06:37:31.697 に答える