2011-12-19 9 views

Respuesta

18

Algo como esto en project/project/Build.scala debe hacerlo:

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

Tenga en cuenta que los que se requieren anidados doblemente project directorios. No conozco ninguna forma de hacerlo desde un archivo .sbt (puede haber una manera, pero no sé qué es).

Esto está documentado here (ver "1d) Proyecto de dependencia").

+2

Gracias. Vi eso, pero no se me ocurrió que podría usar un archivo: // url. Parece que debería haber una forma más directa de hacerlo, algo así como addLocalSbtPlugin ("/ tmp/sbtsh ") –

+2

Esto podría funcionar también (no lo he probado): perezoso val shPlugin = archivo ("/tmp/sbt-sh ") –

+2

Además, el mensaje de error que aparece si ingresa el error nombre de archivo es un poco engañoso: URI de compilación no válida (no hay controlador disponible): file: /// tmp/sbt-shX/(donde sbt-shX no existe) –

10

En 0.13, hay a) una forma sencilla de hacerlo, yb) una mejor documentación. La respuesta de @ Paul Butcher señaló section 1d of the sbt documentation for plugins, que ahora te dice que edita proyecto/plugins.sbt:

lazy val root = project.in(file(".")).dependsOn(assemblyPlugin) 
lazy val assemblyPlugin = uri("git://github.com/sbt/sbt-assembly#0.9.1") 

Y por supuesto que uri (... puede ser reemplazado con un archivo ("/ tmp/SBT-sh")

Cuestiones relacionadas