使 SBT 任务依赖于 OneJar 任务 [英] Getting an SBT task to depend on the OneJar task

查看:31
本文介绍了使 SBT 任务依赖于 OneJar 任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法让我的新 SBT 任务安装"依赖于 OneJar任务.这是我的 Build.scala 文件:

I'm having trouble getting my new SBT task 'install' to depend on the OneJar task. Here's my Build.scala file:

import sbt._
import Keys._
import com.github.retronym.SbtOneJar._

object BuildBroBuild extends Build {
  val install = TaskKey[Unit]("install", "Installs the JAR and a launcher script into your homedir")

  private def installTask = task {
    println("Hello world!")
  }

  override lazy val settings = super.settings ++
    Seq(install <<= (oneJar in Global)(installTask dependsOn(_)))

  lazy val root = Project(id = "buildbro",
                          base = file("."),
                          settings = Project.defaultSettings)
}

这是我得到的错误:

[error] Reference to undefined setting: 
[error] 
[error]   */*:one-jar from {.}/*:install
[error]      Did you mean *:one-jar ?
[error]  

有人知道这是什么意思吗?我相信我必须以不同的方式确定 oneJar TaskKey 的范围.感谢您提供的任何帮助.

Does anybody know what this means? I believe I have to scope the oneJar TaskKey in a different way. Thanks for any help you can offer.

推荐答案

我认为这样的事情应该可行:

I think something like this should work:

object BuildBroBuild extends Build {
  val install = TaskKey[Unit]("install", "Installs the JAR and a launcher script into your homedir")

  private lazy val installTask = install <<= (oneJar, streams) map { case (a, s) => {
    // 'a' is the output from the onejar task (ie, the artifact)
    println("Hello world!")
  }

  override lazy val settings = super.settings ++
    Seq(installTask)

  lazy val root = Project(id = "buildbro",
                          base = file("."),
                          settings = Project.defaultSettings)
}

在这里,我们将 oneJar 任务的输出(以及允许日志记录等的 streams)作为我们新任务的输入.

Here, we are taking the output of the oneJar task (as well as streams, which allows for logging, etc) as input for our new task.

这篇关于使 SBT 任务依赖于 OneJar 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆