如何在自定义任务之前对sbt-assembly进行排序

时间:2016-06-22 20:14:03

标签: scala sbt sbt-assembly

我想在项目assembly文件中定义自定义任务。 sbt-assembly插件中的assembly任务返回每个已组装jar的文件名。自定义任务应该等到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 } 任务完成后再使用文件名列表来执行shell脚本。

以下是我想要实现的目标

tagName

我尝试使用Def.sequential,但我认为它不适合我的自定义任务的要求。任何有关如何创建这样的自定义任务的帮助都非常感谢!

1 个答案:

答案 0 :(得分:1)

花了几个小时研究sbt和在线搜索文档后,我发现我正在以一种稍微不正确的方式思考这个问题。

我提出的解决方案是定义这样的任务:

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,project3的范围内运行程序集任务,并返回一系列文件名。这正是我想要实现的目标。希望这有助于某人。