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

How to sequence sbt-assembly before custom task

我想在我的项目 build.sbt 文件中定义一个自定义任务。来自 sbt-assembly 插件的 assembly 任务 returns 每个组装 jar 的文件名。自定义任务应等到 assembly 任务完成并使用文件名列表执行 shell 脚本。

这是我要实现的目标的想法

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
} 

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

在花了几个小时研究 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和return一系列文件名范围内的组装任务。这正是我想要达到的目标。希望这对某人有帮助。