我听说(而且我知道我也看过一些例子,只要我记得在哪里)sbt
可以从 git repo 获取依赖项。
我正在寻找依赖 harrah/up来自 github。该存储库不提供任何工件 JAR 文件,仅提供使用 sbt
构建的源代码树。我想象的过程是 sbt
将下载源代码库,构建它,然后将其用作依赖项。
我可能在想象 sbt
实际上可以做这样的事情。它可以?如果有,怎么做?
最佳答案
您可以使用 dependsOn
运算符将未打包的依赖项从 GitHub 导入到您的项目中,方法是将它们视为项目依赖项。 (这与包含预编译库依赖项的方式不同)。
请注意,您可以使用 #
表示法指定要提取的分支。下面是一些适合我的 Scala SBT 代码:
object V {
val depProject = "master"
// Other library versions
}
object Projects {
lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#%s".format(V.depProject)))
}
// Library dependencies
lazy val myProject = Project("my-project", file("."))
.settings(myProjectSettings: _*)
.dependsOn(Projects.depProject)
.settings(
libraryDependencies ++= Seq(...
请注意,如果您有多个 SBT 项目依赖于同一个外部项目,则值得设置一个中央 sbt.boot.directory
以避免不必要的重新编译(参见 instructions here)。
https://stackoverflow.com/questions/7550376/