Trong SBT 0.13 và các phiên bản mới nhất của trường hợp sử dụng cũng có thể đạt được với :=
và .value
macro (đó đều nhằm mục đích là đơn giản hơn <<=
):
doc in Compile := {
val f = (doc in Compile).value
// execute a shell script if you want with sbt's Process API
// http://www.scala-sbt.org/0.13/docs/Process.html
val ec = (baseDirectory.value/"myBashScript.sh").getAbsolutePath !
val log = streams.value.log
log.debug(s"Exit code: $ec")
f
}
Bạn cũng có thể như triggeredBy
phương pháp cho các nhiệm vụ như sau:
lazy val runMyBashScriptTask = taskKey[Unit]("Run myBashScript")
runMyBashScriptTask := {
val ec = (baseDirectory.value/"myBashScript.sh").getAbsolutePath !
val log = streams.value.log
log.debug(s"Exit code: $ec")
}
runMyBashScriptTask <<= runMyBashScriptTask triggeredBy (doc in Compile)
Nó giả định rằng myBashScript.sh
là trong thư mục chính của dự án như đã được chỉ bởi baseDirectory
thiết lập.
Nguồn
2014-08-01 19:01:18