如何在 sbt 配置中添加 github java 依赖项?

How to add a github java dependency in sbt config?

我已将此代码添加到我的 Build.scala。

  lazy val root = Project("root", file(".")) dependsOn(jbcrypt)
  lazy val jbcrypt = RootProject(uri("https://github.com/jeremyh/jBCrypt.git"))

但是 sbt 失败并出现错误:

[error] (root/*:update) sbt.ResolveException: unresolved dependency: default#jbcrypt_2.11;0.1-SNAPSHOT: not found

如何告诉 sbt 它是 Java 而不是 Scala?

如何引用特定的分支或标签?

谢谢。

只有当引用的项目是 sbt 项目时,才能从源代码构建项目。 sbt 不知道所有不同的构建系统,所以它怎么知道如何构建一个非 sbt 项目?

可以通过 sbt 插件添加对其他构建系统的支持,但这可能需要大量工作。

您引用的项目是一个简单的 Maven 项目,这意味着您可以轻松地从中创建一个 sbt 项目。只需 fork 存储库并创建一个包含以下内容的 build.sbt

scalaVersion := "2.11.5"

projectDependencies += "junit" % "junit" % "3.8.1" % "test"

publishTo := {
  val nexus = "https://oss.sonatype.org/"
  if (isSnapshot.value) Some("snapshots" at nexus + "content/repositories/snapshots")
  else Some("releases" at nexus + "service/local/staging/deploy/maven2")
}

这是启动它所必需的最少代码 运行。 sbt 似乎需要指定一个发布仓库,它似乎还需要一个明确的 Scala 版本。依赖项已由您链接的 Maven 项目指定。

当然,您知道需要更改 RootProject 的 URI 以指向您的分叉位置。

关于你的第二个问题:你可以通过将 commit/tag/branch 附加到 URI 来引用它,用 # 符号分隔:

uri("git://github.com/your/repo#<commit-hash/tag/branch>")