2016-05-17 13 views
0

我正在學習Play!框架和我正在經歷的項目使用sbt作爲它的構建工具(而不是Maven)。我一直試圖添加MongoDB作爲build.sbt的依賴項,但迄今尚未成功。在Java only項目中將MongoDB添加到SBT

有什麼我錯過了嗎?順便說一句,爲什麼我不需要列出JUnit作爲依賴?

build.sbt文件:

name := "warehouse" 
version := "1.0-SNAPSHOT" 
autoScalaLibrary := false 

libraryDependencies ++= Seq(
    javaJdbc, 
    javaEbean, 
    cache 
) 

libraryDependencies += "org.mongodb" % "mongodb-java-driver" % "3.2.0" 

play.Project.playJavaSettings 

而且將此添加到application.conf(link):

# The mongo module 
module.mongo=${play.path}/modules/mongo 

# mongodb connection details 
mongo.host=localhost 
mongo.port=27017 
mongo.database=play 

編輯: 的下面是編譯時錯誤消息我在終端執行play compile命令時得到:

[info] Resolving org.mongodb#mongodb-java-driver;3.2.0 ... 
[warn] module not found: org.mongodb#mongodb-java-driver;3.2.0 
[warn] ==== local: tried 
[warn] ~/Developer/Play/play-2.2.6/repository/local/org.mongodb/mongodb-java-driver/3.2.0/ivys/ivy.xml 
[warn] ==== Maven2 Local: tried 
[warn] file:~/.m2/repository/org/mongodb/mongodb-java-driver/3.2.0/mongodb-java-driver-3.2.0.pom 
[warn] ==== public: tried 
[warn] http://repo1.maven.org/maven2/org/mongodb/mongodb-java-driver/3.2.0/mongodb-java-driver-3.2.0.pom 
[warn] ==== Typesafe Releases Repository: tried 
[warn] http://repo.typesafe.com/typesafe/releases/org/mongodb/mongodb-java-driver/3.2.0/mongodb-java-driver-3.2.0.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.mongodb#mongodb-java-driver;3.2.0: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
sbt.ResolveException: unresolved dependency: org.mongodb#mongodb-java-driver;3.2.0: not found 
. 
. 
. 
[error] (*:update) sbt.ResolveException: unresolved dependency: org.mongodb#mongodb-java-driver;3.2.0: not found 
+0

任何錯誤信息都會有幫助..而且,你需要添加junit作爲依賴嗎? – rethab

+0

@rethab JUnit似乎工作正常,沒有被列爲依賴,我只是想知道爲什麼這樣。 – Calculus5000

+1

artifactId是'mongo-java-driver'。 JUnit很可能已經被其他lib引用。你可以用它來檢查它是哪一個:https://github.com/jrudolph/sbt-dependency-graph – rethab

回答

1

您遇到的問題是您的項目無法解決我之前見過的依賴關係。在回答你的問題之前,我想談談依賴關係解析過程,如下所示。

當您的項目需要解析依賴關係時,它會嘗試在某些存儲庫中查找依賴關係。 sequencely訪問的庫是如下

首先,步入你的項目庫,爲您的項目,其目錄是〜/開發商/遊戲/播放2.2.6 /庫/

如果沒有找到,Maven倉庫將搜索其目錄是〜/ .m2目錄/庫/

如果還沒有找到相關性,它將訪問互聯網上的資源庫,如http://repo1.maven.org/maven2,然後將其下載到本地。

也許你的網絡不支持你訪問http://repo1.maven.org/maven2,我認爲這是它的原因。

你可以做以下的事情解決這個問題:

1)下載jar文件,http://central.maven.org/maven2/org/mongodb/mongo-java-driver/3.2.0/mongo-java-driver-3.2.0.jar

2)使用以下命令

mvn install:install-file -Dfile=~/mongo-java-driver-3.2.0.jar -DgroupId=org.mongodb -DartifactId=mongo-java-driver -Dversion=3.2.0 -Dpackaging=jar 
它發佈到本地Maven倉庫

請注意,

如果您將驅動程序下載到導演Y 「〜/」,然後

-Dfile =〜/蒙戈-Java的應用程序,3.2.0.jar

如果您還沒有安裝MVN,只是安裝它。 然後,重新打開您的項目。

祝你好運