2012-07-06 3 views
3

OneJar 작업에 따라 새 SBT 작업을 설치하는 데 문제가 있습니다. 여기 내 Build.scala 파일입니다 :OneJar 작업에 종속되는 SBT 작업 받기

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의 범위를 지정해야한다고 생각한다. 제공 할 수있는 도움에 감사드립니다.

답변

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) 
} 

을 여기에, 우리는 우리의 새로운 작업에 대한 입력으로 (로깅 할 수 있습니다뿐만 아니라 streams, 등)하여 oneJar 작업의 출력을하고있다.

관련 문제