Si quiero agregar un complemento que está en un directorio local fuera del árbol del proyecto, ¿cuál es la forma correcta de hacerlo? Digamos que clono algo simple como https://github.com/steppenwells/sbt-sh.git en/tmp/sbt-sh: ¿qué pongo en mi archivo build.sbt para usar el complemento de/tmp/sbt-sh que recogerá los cambios que realice en/tmp/sbt- sh?En sbt, ¿cómo se agrega un complemento que está en el sistema de archivos local?
22
A
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").
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
- 1. sbt: ¿Cómo puedo agregar un contenedor de sistema de archivos local a mi proyecto?
- 2. Utilice el complemento maven en SBT
- 3. SBT no encuentra el archivo en el repositorio local de maven aunque está allí
- 4. Microsoft.Jet.OLEDB.4.0 no está registrado en el sistema local
- 5. git-merge con repositorio en el sistema de archivos local
- 6. Gradle store en el sistema de archivos local
- 7. ¿Cómo configurar un repositorio proxy local para SBT?
- 8. Cómo incluir un complemento externo dentro de otro complemento jQuery que se está creando
- 9. ¿Cómo obtiene un plugin sbt una ruta a un archivo en el complemento?
- 10. Ejecutar Greasemonkey en archivos html ubicados en el sistema de archivos local?
- 11. ¿Cómo hacer que sbt compile un complemento de un repositorio git, usando https para verificarlo?
- 12. ¿Cómo puedo saber si un archivo está en un sistema de archivos remoto con Perl?
- 13. ¿Cómo se implementa fseek() en el sistema de archivos?
- 14. ¿Cómo agrega un complemento de Grails sus propias URLMappings?
- 15. ¿Cómo instalar lxml en virtualenv desde el sistema local?
- 16. Cómo detectar si una página web se está ejecutando desde un sitio web o sistema de archivos local
- 17. ¿Cómo encontrar el puerto local en el que se está ejecutando una instancia de raíles?
- 18. En Perforce en Unix, ¿cómo se agrega un directorio que es un enlace simbólico?
- 19. Cómo agregar el complemento sbteclipse a SBT 0.10.x
- 20. ¿El número entero de .NET no está simplemente basado en el sistema de complemento de dos?
- 21. Cómo usar el esquema que está en la máquina local en el documento XML
- 22. Cómo obtener la ruta del sistema de archivos de la clase que se está ejecutando
- 23. Scala SBT: scala.tools.nsc no se está ejecutando
- 24. ¿Es posible montar un almacenamiento remoto en el sistema de archivos local de iOS?
- 25. Intentando hacer un sistema de complemento en C++/Qt
- 26. ¿Cómo obtener el sistema operativo en el que se está ejecutando PHP?
- 27. ¿Cómo acceder a un sistema de archivos en Java?
- 28. ¿Cómo copiar el archivo del sistema local a otro sistema en C# (aplicación de Windows)?
- 29. cómo encontrar un bucle en el sistema de archivos?
- 30. construir un sistema de complemento con php
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 ") –
Esto podría funcionar también (no lo he probado): perezoso val shPlugin = archivo ("/tmp/sbt-sh ") –
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) –