我想在项目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
,但我认为它不适合我的自定义任务的要求。任何有关如何创建这样的自定义任务的帮助都非常感谢!
答案 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的范围内运行程序集任务,并返回一系列文件名。这正是我想要实现的目标。希望这有助于某人。