如果我想在项目树之外的本地目录中添加一个插件,那么正确的方法是什么?假设我将像https://github.com/steppenwells/sbt-sh.git这样简单的东西克隆到/ tmp / sbt-sh - 我在build.sbt文件中放置什么来使用/ tmp / sbt-sh中的插件来获取我在/中所做的任何更改TMP / SBT-SH?
答案 0 :(得分:18)
project/project/Build.scala
中的这类内容应该这样做:
import sbt._
object PluginDef extends Build {
lazy val projects = Seq(root)
lazy val root = Project("plugins", file(".")) dependsOn( shPlugin )
lazy val shPlugin = uri("file:///tmp/sbt-sh")
}
请注意,双嵌套project
目录是必需的。我不知道有任何方法可以从.sbt
文件中执行此操作(可能有一种方法,但我不知道它是什么)。
记录here(参见“1d)项目依赖”)。
答案 1 :(得分:12)
在0.13中,有一个简单的方法可以做到这一点,以及b)更好的文档。 @PaulButcher的回答指向section 1d of the sbt documentation for plugins,现在告诉你编辑project / plugins.sbt:
(@ axel22指出这已经改变,因此请在复制之前检查当前的文档)
lazy val root = project.in( file(".") ).dependsOn( assemblyPlugin )
lazy val assemblyPlugin = uri("git://github.com/sbt/sbt-assembly#0.9.1")
当然那个uri(......可以用文件替换(“/ tmp / sbt-sh”)。