我很难让我的新SBT任务“安装”依赖于OneJar任务。这是我的Build.scala文件:
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的范围。感谢你能提供的任何帮助。
发布于 2012-07-07 03:58:00
我认为像这样的东西应该是有效的:
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等)的输出作为新任务的输入。
https://stackoverflow.com/questions/11365790
复制相似问题