【问题标题】:How to sequence sbt-assembly before custom task如何在自定义任务之前对 sbt-assembly 进行排序
【发布时间】:2016-06-23 21:06:39
【问题描述】:

我想在我的项目build.sbt 文件中定义一个自定义任务。来自 sbt-assembly 插件的 assembly 任务返回每个组装的 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,但我认为它不适合我的自定义任务的要求。非常感谢有关如何创建这样的自定义任务的任何帮助!

【问题讨论】:

    标签: scala sbt sbt-assembly


    【解决方案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范围内运行组装任务,并返回一系列文件名。这正是我想要达到的目标。希望这可以帮助某人。

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 2012-01-23
      • 1970-01-01
      • 2018-10-29
      • 2014-09-26
      • 2011-01-07
      • 2011-12-10
      • 2015-11-23
      • 1970-01-01
      相关资源
      最近更新 更多