首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使SBT任务依赖于OneJar任务

使SBT任务依赖于OneJar任务
EN

Stack Overflow用户
提问于 2012-07-07 00:03:21
回答 1查看 955关注 0票数 3

我很难让我的新SBT任务“安装”依赖于OneJar任务。这是我的Build.scala文件:

代码语言:javascript
复制
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)
}

下面是我得到的错误:

代码语言:javascript
复制
[error] Reference to undefined setting: 
[error] 
[error]   */*:one-jar from {.}/*:install
[error]      Did you mean *:one-jar ?
[error]  

有人知道这是什么意思吗?我认为我必须以一种不同的方式来确定oneJar TaskKey的范围。感谢你能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-07 03:58:00

我认为像这样的东西应该是有效的:

代码语言:javascript
复制
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等)的输出作为新任务的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11365790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档