2016-06-22 5 views
1

私のプロジェクトでカスタムタスクを定義したいのですが、build.sbtファイルです。 sbt-assemblyプラグインのassemblyタスクは、アセンブルされた各jarのファイル名を返します。カスタムタスクは、assemblyタスクが完了するまで待機し、ファイル名のリストを使用してシェルスクリプトを実行します。カスタムタスクの前にsbt-assemblyをシーケンスする方法

は、ここで私は私がDef.sequentialを使用してみましたが

lazy val listOfFiles = taskKey[Unit]("Run script passing jar file names as parameters.") 

listOfFiles := { 
    val files = List[File]() 
    files :+ assembly 
    // run script passing file names as parameters 
} 

を達成しようとしているかのアイデアだが、私はそれが私のカスタムタスクの要件に適していないと思います。このようなカスタムタスクを作成する方法についての助けがあれば幸いです!

答えて

1

オンラインでドキュメントを検索したり検索したりして時間を費やしたところ、私は問題を少し間違った方法で考えていることを発見しました。

私が出ているソリューションは、このようにタスクを定義することです:

lazy val listOfFiles = taskKey[Unit]("Run script passing jar file names as parameters.") 

listOfFiles := { 
    val files = assembly.all(ScopeFilter(inProjects(project1, project2, project3))).value 
    files.map(x => println("jar file: " + x)) 
    // run script passing file names as parameters 
} 

上記listOfFilesタスクがProject1の範囲で組立作業を実行し、Project2を、プロジェクト3およびファイルのシーケンスを返します。名前。これはまさに私が達成しようとしていたものです。これが誰かを助けることを望みます。

関連する問題