¿Usando el repository local de Git como dependencia en el proyecto SBT?

Cloné un repository de GitHub en mi máquina local, lo cambié para adaptarlo a mis necesidades y ahora voy a usarlo en mi proyecto. Creo que debo usar el file .jar de él. Sin embargo, no existe dicho file.

¿Tengo que generarlo yo mismo?

Además, ¿cómo me refiero a eso? No quiero copyrlo a la carpeta /lib por ahora porque sigo trabajando en el proyecto clonado. Como descubrí, tengo que usar esto:

 resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 

Sin embargo, no tengo el file build.sbt , solo tengo un file scala simple llamado Build.scala y no es posible usar el código anterior en él.

Además, dice /.m2/repository , pero ¿cómo sabe dónde está el file .jar en este repository?

Como el proyecto proviene de GitHub, supongo que es un proyecto de git. La solución es usar RootProject con git URI como reference para su proyecto de git clonado.

Supongamos que ha clonado el proyecto en /Users/jacek/sandbox/so/sbt-git/git-repo (como hice en Can SBT refresh git uri dependency (always or on demand)? ).

Haga el git log para encontrar el último compromiso al que desea hacer reference y dependsOn en el URI git del proyecto al que se hace reference en SBT – in dependsOn .

Dado que el último compromiso es a221379c7f82e5cc089cbf9347d473ef58255bb2 , build.sbt podría tener el siguiente aspecto:

 lazy val v = "a221379c7f82e5cc089cbf9347d473ef58255bb2" lazy val g = RootProject(uri(s"git:file:///Users/jacek/sandbox/so/sbt-git/git-repo/#$v")) lazy val root = project in file(".") dependsOn g 

También es posible omitir la identificación de confirmación y mantenerse al día con el desarrollo en el proyecto git referencedo después de que se actualizó con git fetch seguido de git merge como se describe en git-pull (1) Página manual .