sbt对源依赖项目有以下语法:
RootProject(file("/a/b/c"))
RootProject(uri("git://github.com/a/b/c#some-branch"))
但是我找不到任何从本地git仓库克隆的方法,而不需要像运行git服务器这样荒谬的事情。我想表达以下观点,或者说是道德上的等价——道德等价意味着它不需要ssh或工作DNS或git服务器,甚至不需要"localhost"的工作解析,也不应该引入任何形式的无意义构建脆弱性。(手动检出所需的分支到另一个工作目录,并指向sbt,这是一个毫无意义的构建脆弱性的例子。)
RootProject(file("/a/b/c#some-branch"))
// This seems like the most plausible syntax,
// but it explodes during cloning - "ssh: Could not resolve hostname git"
RootProject(uri("git:/a/b/c#some-branch"))
第二次尝试非常接近,假设commit
是您想要使用的提交的SHA1,并且您将repo克隆到/a/b/c
:
RootProject(uri(s"git:file:///a/b/c/#$commit"))