如何在sbt config中添加github java依赖?

时间:2015-04-04 16:29:30

标签: scala github sbt

我已将此代码添加到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?

如何引用特定分支或标记?

谢谢。

1 个答案:

答案 0 :(得分:7)

只有在引用的项目是sbt项目时,才能从源构建项目。 sbt不知道所有不同的构建系统,那么如何知道如何构建非sbt项目呢?

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

您引用的项目是一个简单的Maven项目,这意味着您可以轻松地从中创建一个sbt项目。只需分叉回购并创建一个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似乎要求指定一个发布repo,它似乎也需要一个显式的Scala版本。依赖关系已由链接的Maven项目指定。

当然,您知道需要将RootProject的URI更改为指向fork的位置。

关于第二个问题:您可以通过将提交/标记/分支附加到URI来引用它,并使用#符号分隔:

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