2014-10-23 10 views
0

Я новичок в разработке JVM (я использую Scala и SBT), и у меня возникают проблемы при разрешении зависимостей. Вчера у меня была проблема разрешающую в org.restlet.2.1.1 зависимость и сегодня, у меня возникли проблемы с разрешения следующих действий:Разрешение зависимостей SBT

[error] (*:update) sbt.ResolveException: unresolved dependency: com.mongodb.casbah#casbah_2.9.2;2.1.5-1: not found 
[error] unresolved dependency: org.scalatra#scalatra_2.9.2;2.3.0: not found 
[error] unresolved dependency: org.scalatra#scalatra-akka2_2.9.2;2.3.0: not found 
[error] unresolved dependency: org.scalatra#scalatra-specs2_2.9.2;2.3.0: not found 

Я использую шаблон проекта в giter8 scalatra-MongoDB из GitHub: click me. Поскольку проект немного устарел, разумно, что я пытаюсь получить устаревшие версии, которые больше не существуют или не совместимы. Что вы делаете в этой ситуации? Я пытался возиться с номерами версий в файле build.sbt, но это не сработало (и, похоже, хуже).

Ниже содержание моего build.sbt файла:

scalaVersion := "2.9.2" 

mainClass := Some("JettyLauncher") 

seq(webSettings :_*) 

port in container.Configuration := 8080 

seq(assemblySettings: _*) 

libraryDependencies ++= Seq(
    "com.mongodb.casbah" %% "casbah" % "2.8.1-1", 
    "org.scalatra" %% "scalatra" % "2.2.0", 
    "org.scalatra" %% "scalatra-akka2" % "2.2.0", 
    "org.scalatra" %% "scalatra-specs2" % "2.2.0" % "test", 
    "org.mortbay.jetty" % "servlet-api" % "3.0.20100224" % "provided", 
    "org.eclipse.jetty" % "jetty-server" % "8.0.0.M3" % "container, compile", 
    "org.eclipse.jetty" % "jetty-util" % "8.0.0.M3" % "container, compile", 
    "org.eclipse.jetty" % "jetty-webapp" % "8.0.0.M3" % "container, compile" 
) 

resolvers ++= Seq(
    "Sonatype OSS" at "http://oss.sonatype.org/content/repositories/releases/", 
    "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/", 
    "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/", 
    "Akka Repo" at "http://akka.io/repository/", 
    "Web plugin repo" at "http://siasia.github.com/maven2" 
) 

Ниже приведен мой plugins.sbt файл:

addSbtPlugin("com.earldouglas" %% "xsbt-web-plugin" % "0.9.0") 

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2") 

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

В любом случае, какие версии этих зависимостей мне нужны, чтобы все работало? В целом, что является стратегией для решения этих зависимостей (сейчас я понятия не имею, что делать (кроме посещения страницы GitHub и скрипки с номерами версий)?

Спасибо за помощь!

ответ

0

У меня есть . по крайней мере, получили SBT разрешить свои зависимости для любой, что стоит (она имеет проблемы с пути к классам теперь ...) в любом случае, следующий мой новый и улучшенный build.sbt файл:

scalaVersion := "2.10.4" 

mainClass := Some("JettyLauncher") 

seq(webSettings :_*) 

port in container.Configuration := 8080 

seq(assemblySettings: _*) 

libraryDependencies += "org.mongodb" %% "casbah-core" % "2.7.3" 

libraryDependencies += "org.scalatra" %% "scalatra" % "2.2.0-RC3" cross CrossVersion.binary 

libraryDependencies += "org.scalatra" %% "scalatra-akka" % "2.2.0-RC3" 

libraryDependencies += "org.scalatra" %% "scalatra-specs2" % "2.2.0" % "test" 

libraryDependencies += "org.mortbay.jetty" % "servlet-api" % "3.0.20100224" % "provided" 

libraryDependencies += "org.eclipse.jetty" % "jetty-server" % "9.0.0.M5" % "container" 

libraryDependencies += "org.eclipse.jetty" % "jetty-util" % "9.0.0.M5" % "container" 

libraryDependencies += "org.eclipse.jetty" % "jetty-webapp" % "9.0.0.M5" % "container" 

resolvers ++= Seq(
    "Sonatype releases" at "http://oss.sonatype.org/content/repositories/releases/", 
    "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/", 
    "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/", 
    "Akka Repo" at "http://akka.io/repository/", 
    "Web plugin repo" at "http://siasia.github.com/maven2" 
) 

Все, что я действительно был провести несколько часов поиска в Интернете и поиск mvn-репозиториев, которые были совместимы с версией scala, которую я использую (2.10.4). что %% добавит scala-версию к имени зависимостей (похоже, это хорошая конвенция, поскольку Scala всегда развивается). Однажды я получил несколько зависимостей, остальные оставлены!