2016-05-17 6 views
0

В настоящее время я изучаю игру! framework и проект, который я использую, использует sbt как инструмент построения (а не Maven). Я пытаюсь добавить MongoDB как зависимость от build.sbt, но пока не удалось.Добавление MongoDB к SBT только в проекте Java

Есть ли что-то, что я пропустил? Кстати, почему мне не нужно перечислять 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 

EDIT: Ниже это сообщение об ошибке во время компиляции что я получаю при выполнении команды 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, скорее всего, уже ссылается на некоторые другие библиотеки. Вы можете использовать это, чтобы проверить, какой из них: https://github.com/jrudolph/sbt-dependency-graph – rethab

ответ

1

Проблема, с которой вы столкнулись, заключается в том, что ваш проект не может решить зависимость, с которой я встречался раньше. Прежде чем ответить на ваш вопрос, я хочу поговорить о процессе разрешения зависимости следующим образом.

Когда ваш проект должен разрешить зависимость, он попытается найти зависимость в некоторых репозиториях. Хранилище доступ sequencely выглядит следующим образом

Во-первых, это шаги в хранилище вашего проекта, как для вашего проекта, чей каталог ~/Разработчик/Play/плей-2.2.6/хранилище/.

Если не найден, репозиторий Maven будет искать чей каталог ~/.m2/хранилище/

Если зависимость также не найден, он будет иметь доступ к хранилищу в Интернете, таких как http://repo1.maven.org/maven2, а затем загрузить его на локальный.

Возможно, ваша сеть не поддерживает ваш доступ к http://repo1.maven.org/maven2, что, я думаю, причина.

Вы можете решить эту проблему, выполнив следующие действия:

1) скачать файл банку, http://central.maven.org/maven2/org/mongodb/mongo-java-driver/3.2.0/mongo-java-driver-3.2.0.jar

2) опубликовать его в локальный репозиторий Maven с помощью следующей команды

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 

Отметьте, что

Если вы загрузите водителя в директорию у "~ /", то

-Dfile = ~/Монго-ява-водитель-3.2.0.jar

Если вы не установили MVN, просто установите его. Затем снова запустите свой проект.

Удачи