我开始在看看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仓库。 –