我開始在看看SBT插件,我有這個類:如何開發將從命令行調用的自定義任務(在autoplugin中)?
package msbt.test.plugin
import sbt._
import Keys._
object SbtTest extends AutoPlugin {
object autoImport {
lazy val hello = taskKey[Unit]("Prints 'Hello World'")
}
import autoImport._
hello := println("hello world")
}
我想調用命令行的任務。我如何將此添加到我的Build.scala
?我不能從那裏到達包:
import sbt._
import msbt.test.plugin._ // this cannot be resolved
object SbtGitBuild extends Build {}
當然,這也工作,如果我手動將其添加到構建文件或build.sbt
文件是這樣的:
sbtPlugin := true
name := "sbt-test-plugin"
version := "0.1-SNAPSHOT"
scalaVersion := "2.10.4"
lazy val hello = taskKey[Unit]("Prints 'Hello World'")
hello := println("hello world!")
然後從控制檯我可以調用hello
,但我當然希望能夠構造我的代碼,並避免將其扔到構建文件中。這可能嗎?我是否需要另外一個導入我的插件來使用和測試它的sbt項目?如果是的話哪種方法最快?
因爲我是初學者,所以我編寫並測試了每一段代碼,最好有一種快速的方法將更新包含到另一個項目中。
Here鏈接到Github存儲庫。
我都試過,但技術途徑都沒有的工作,加入這個'.enablePlugins(SbtTest)'給了我一個編譯錯誤,因爲'SbtTest'無法找到(我也不能導入包哪裏它的定義),而對於觸發器,我不知道該怎麼做,我嘗試了'allRequirments',但仍然找不到命令。 –
您可能需要發送更多構建以獲得幫助。 – jsuereth
我用所有的代碼添加了一個鏈接到git倉庫。 –