3

新しい SBT タスク 'install' を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 を別の方法でスコープする必要があると思います。ご協力いただきありがとうございます。

4

1 に答える 1

1

私はこのようなものがうまくいくはずだと思います:

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ログなどを可能にする ) を取得しています。

于 2012-07-06T19:57:59.867 に答える