2015-04-04 83 views
3

我已將此代碼添加到我的Build.scala。如何在sbt config中添加github java依賴項?

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的斯卡拉不是?

如何引用特定分支或標籤?

謝謝。

+1

有沒有你不希望從解決這個任何理由maven中央? – 2015-04-04 17:33:45

+1

@ m-z mvnrepository只有舊版本的lib「0.3m」。我想使用主分支的新版本。 – cyrillk 2015-04-04 17:36:51

+1

我敢肯定,如果你試圖依賴的項目沒有SBT構建(儘管東西總是會讓我感到驚訝,所以誰知道)。 – 2015-04-04 19:06:17

回答

5

只有在被引用項目是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似乎要求指定一個發佈回購,它似乎也需要一個明確的Scala版本。依賴關係已經由您的鏈接Maven項目指定。

當然,您需要更改URI的RootProject指向您的叉的位置。

你的第二個問題:您可以通過它附加到URI引用提交/標籤/分支,其#號分隔:

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