2014-01-03 4 views
2

Я довольно новичок в Scala и SBT. Я хотел бы реализовать сервер REST с использованием JAX-RS и Scala, но столкнулся с первым препятствием, пытающимся настроить SBT. Я планировал использовать HTTP-сервер Grizzly. build.sbt выглядит следующим образом:SBT не разрешает зависимость для jersey-container-grizzly2-http 2.5.1

name := "scala-jersey-server" 

version := "1.0" 

scalaVersion := "2.10.3" 

libraryDependencies += "org.glassfish.jersey.containers" % "jersey-container-grizzly2-http" % "2.5.1" 

Запуск обновления SBT терпит неудачу со следующими сообщениями

[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.glassfish.hk2#hk2-utils;2.5.1: not found 
[warn] :: org.glassfish.hk2#hk2-locator;2.5.1: not found 
[warn] :: javax.validation#validation-api;${javax.validation.version}: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 

Глядя на pom.xml для hk2-api, он показывает зависимость от hk2-utils, используя переменную ${project.version}, но я бы ожидаемая версия 2.2.0-b21 от hk2-utils, запрошенная SBT не 2.5.1 (это версия JAX-RS).

<dependency> 
    <groupId>org.glassfish.hk2</groupId> 
    <artifactId>hk2-utils</artifactId> 
    <version>${project.version}</version> 
</dependency> 

Является ли это проблемой с конфигурацией pom.xml ¯hk2-API, является SBT, используя неправильную версию или что-то еще?

ответ

3

Я думаю, что есть ошибка в цепочке публикации вашей зависимости для версии 2.5.1.

Есть по крайней мере три варианта:

1. Используйте другую версию

//http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.glassfish.jersey.containers%22%20AND%20a%3A%22jersey-container-grizzly2-http%22 
libraryDependencies += "org.glassfish.jersey.containers" % "jersey-container-grizzly2-http" % "2.5" 

2. Используйте другой библиотеку

3. Исключить нарушенные зависимости и установить работать версии Используйте http://search.maven.org/, чтобы найти существующие версии ,

libraryDependencies += "org.glassfish.jersey.containers" % "jersey-container-grizzly2-http" % "2.5.1" exclude("org.glassfish.hk2", "hk2-utils") exclude("org.glassfish.hk2", "hk2-locator") exclude("javax.validation", "validation-api") 

//http://search.maven.org/#browse%7C703203458 
libraryDependencies += "org.glassfish.hk2" % "hk2-utils" % "2.2.0-b27" 

//http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22hk2-locator%22 
libraryDependencies += "org.glassfish.hk2" % "hk2-locator" % "2.2.0-b27" 

//http://search.maven.org/#artifactdetails%7Cjavax.validation%7Cvalidation-api%7C1.1.0.Final%7Cjar 
libraryDependencies += "javax.validation" % "validation-api" % "1.1.0.Final" 
0

** Я попробовал вышеуказанный файл .sbt но не исключая банки и все еще дает ту же ошибку.

Так изменил файл сборки. ниже образца он мог бы создать сбор успешно. **

name := "KafkaSparkCouchReadWrite" 

organization := "my.clairvoyant" 

version := "1.0.0-SNAPSHOT" 

scalaVersion := "2.11.11" 

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "2.1.0", 
    "org.apache.spark" %% "spark-streaming" % "2.1.0", 
    "org.apache.spark" %% "spark-sql" % "2.1.0", 
    "com.couchbase.client" %% "spark-connector" % "2.1.0", 
    "org.glassfish.hk2" % "hk2-utils" % "2.2.0-b27", 
    "org.glassfish.hk2" % "hk2-locator" % "2.2.0-b27", 
    "javax.validation" % "validation-api" % "1.1.0.Final" 
).map(_.excludeAll(ExclusionRule("org.glassfish.hk2"),ExclusionRule("javax.validation"))) 
Смежные вопросы