SBT + AKKA Unresolved dependency problem

0

Hej chciałem pobawić się trochę akką. Wygenerowałem sobie projekt sbt w intelij i zacząłem robić wg tego tutoriala http://doc.akka.io/docs/akka/2.0/intro/getting-started-first-scala.html

Niestety kiedy startuje projekt otrzymuje

Error:Error while importing SBT project:<br/>...<br/><pre>[info] Resolving jline#jline;2.14.4 ...
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	::          UNRESOLVED DEPENDENCIES         ::
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	:: com.typesafe.akka#akka-actor_2.12;2.0: not found
[warn] 	:: com.typesafe.akka#akka-testkit_2.12;2.0: not found
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] 	Note: Unresolved dependencies path:
[warn] 		com.typesafe.akka:akka-actor_2.12:2.0 ($PROJECT_DIR/build.sbt#L11-15)
[warn] 		  +- akkatraining:akkatraining_2.12:0.1
[warn] 		com.typesafe.akka:akka-testkit_2.12:2.0 ($PROJECT_DIR/build.sbt#L11-15)
[warn] 		  +- akkatraining:akkatraining_2.12:0.1

Tutaj mój build.sbt

name := "AkkaTraining"

version := "0.1"

scalaVersion := "2.12.3"

resolvers += "akka" at "http://repo.akka.io/snapshots"

resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.0",
  "com.typesafe.akka" %% "akka-testkit" % "2.0"
)

Próbowałem już zmieniać wersję tych dependency na nowszą. Ktoś bardziej doświadczony z sbt i akką ma jakieś rady jak to zrobić ?

1

Jak wchodzę na tą stronę co podałeś to na dole wyświetla mi się duże ostrzeżenie o takiej treści:

This version of Akka (akka / 2.0) is outdated and not supported!

Please upgrade to version 2.5.4 as soon as possible.

Click here to go to the same page on the 2.5.4 version of the docs.

You are browsing the docs for Akka 2.0, however the latest release in this series is: 2.0.5.

Zastosuj się do tego co jest tam napisane.

Problem wynika z tego, że duże wersje (czyli 2.10, 2.11, 2.12, itd) są ze sobą binarnie niekompatybilne. Z tego powodu wersja Scali jest doklejana do nazwy artefaktu i dostajemy coś takiego: com.typesafe.akka:akka-actor_2.12:2.0 zamiast com.typesafe.akka:akka-actor:2.0. Akka w wersji 2.0 nie została opublikowana dla Scali 2.12 z bardzo prostego powodu - Akka 2.0 została wydana 6. marca 2012 roku, a Scala 2.12 3. listopada 2016 roku, więc jest mało ludzi którzy używają takiej dziwnej kombinacji i nikt nie publikował dla tejże kombinacji artefaktów Akki.

Z powyższej zasady (czyli binarnej niekompatybilności głównych wersji i w konsekwencji doklejania wersji głównej Scali do nazwy artefaktu) w zasadzie wynika to, że twoje zależności muszą być nie starsze niż pierwsze wydanie głównej wersji Scali, której używasz. Dla przykładu - jeśli używasz Scali 2.12.3, to próbując używać artefaktów wydanych przed Scalą 2.12.0 raczej ich nie znajdziesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1