Ошибки ‘Неразрешённые зависимости’ при установке новых зависимостей SBT для Akka HTTP

Вопрос или проблема

Я разрабатываю проект на Akka HTTP с использованием Scala 3 и SBT.

Приложение работало нормально до того, как я добавил новые зависимости ниже в build.sbt.

Новые добавленные зависимости: akka-http-circe, akka-http-json4s, authentikat-jwt, json4s-native, circe-generic, slf4j-simple.

Сразу после добавления новых зависимостей в build.sbt я начал получать ошибки:

Уведомление: Неразрешенные зависимости:

не найдено: C:\Users\hp\.ivy2\localde.heikoseeberger\akka-http-circe_2.13\1.27.0\ivys\ivy.xml

не найдено: https://repo1.maven.org/maven2/de/heikoseeberger/akka-http-circe_2.13/1.27.0/akka-http-circe_2.13-1.27.0.pom

не найдено: https://repo.akka.io/maven/de/heikoseeberger/akka-http-circe_2.13/1.27.0/akka-http-circe_2.13-1.27.0.pom

Ошибка при загрузке de.heikoseeberger:akka-http-circe_2.13:1.27.0

Похожая ошибка возникает и с другими новыми зависимостями, которые я добавил в build.sbt.

Я думал, что это проблема совместимости scala3, поэтому я добавил .cross(CrossVersion.for3Use2_13) к каждой новой зависимости.

Но проблема сохранялась.

В чем может быть дело?

Заранее спасибо!

Новые добавленные зависимости:


("com.typesafe.scala-logging" %% "scala-logging"   % "3.9.0").cross(CrossVersion.for3Use2_13),
("de.heikoseeberger" %% "akka-http-circe"          % "1.27.0").cross(CrossVersion.for3Use2_13),
("de.heikoseeberger" %% "akka-http-json4s"         % "1.22.0").cross(CrossVersion.for3Use2_13),
("com.jason-goodwin" %% "authentikat-jwt"          % "0.4.5").cross(CrossVersion.for3Use2_13),
("org.json4s"        %% "json4s-native"            % "3.6.1").cross(CrossVersion.for3Use2_13),
("io.circe"          %% "circe-generic"            % "0.11.1").cross(CrossVersion.for3Use2_13),
("org.slf4j"         %% "slf4j-simple"             % "1.7.25").cross(CrossVersion.for3Use2_13),

build.sbt:


lazy val akkaHttpVersion = "10.6.3"
lazy val akkaVersion    = "2.9.4"

resolvers += "Репозиторий библиотек Akka".at("https://repo.akka.io/maven")

fork := true

lazy val root = (project in file(".")).
  settings(
    inThisBuild(List(
      organization    := "com.example",
      scalaVersion    := "3.3.3"
    )),
    name := "eskimi-bidding-agent",
    libraryDependencies ++= Seq(
      "com.typesafe.akka" %% "akka-http"                % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-http-spray-json"     % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-actor-typed"         % akkaVersion,
      "com.typesafe.akka" %% "akka-stream"              % akkaVersion,
      "com.typesafe.akka" %% "akka-pki"                 % akkaVersion,
      ("com.typesafe.scala-logging" %% "scala-logging"   % "3.9.0").cross(CrossVersion.for3Use2_13),
      ("de.heikoseeberger" %% "akka-http-circe"          % "1.27.0").cross(CrossVersion.for3Use2_13),
      ("de.heikoseeberger" %% "akka-http-json4s"         % "1.22.0").cross(CrossVersion.for3Use2_13),
      ("com.jason-goodwin" %% "authentikat-jwt"          % "0.4.5").cross(CrossVersion.for3Use2_13),
      ("org.json4s"        %% "json4s-native"            % "3.6.1").cross(CrossVersion.for3Use2_13),
      ("io.circe"          %% "circe-generic"            % "0.11.1").cross(CrossVersion.for3Use2_13),
      ("org.slf4j"         %% "slf4j-simple"             % "1.7.25").cross(CrossVersion.for3Use2_13),
      "ch.qos.logback"    % "logback-classic"           % "1.2.11",

      "com.typesafe.akka" %% "akka-http-testkit"        % akkaHttpVersion % Test,
      "com.typesafe.akka" %% "akka-actor-testkit-typed" % akkaVersion     % Test,
      "org.scalatest"     %% "scalatest"                % "3.2.12"        % Test
    )
  )

Ответ или решение

Проблема, которую вы описали, связана с использованием неверной версии библиотек и несовместимостью с Scala 3. Давайте рассмотрим шаги, которые помогут вам устранить проблему с неопределёнными зависимостями.

  1. Версии библиотек: Убедитесь, что версии библиотек, которые вы используете, совместимы с Scala 3. Например, библиотеки, такие как akka-http-circe и akka-http-json4s, на момент написания не имели версий, подходящих для Scala 3. Чтобы помочь вам с этой проблемой, проверьте последнюю документацию на GitHub или страницу проекта, чтобы узнать, есть ли обновления, которые поддерживают Scala 3.

  2. Использование правильных версий: Код, который вы добавили, использует актуальные версии библиотек для Scala 2.13. Если ваши проекты требуют поддержки Scala 3, вам нужно использовать подходящие версии библиотек. Например, ищите версии, которые обозначены как -scala3 в имени, или проверьте, если существует версия, обеспечивающая поддержку Scala 3.

  3. Очистка кеша Ivy/SBT: Иногда SBT кэширует зависимости, что может вызвать проблемы. Попробуйте очистить кеш командой:

    sbt clean

    Затем удалите локальный кеш Ivy:

    rm -rf ~/.ivy2/cache
    rm -rf ~/.ivy2/local
  4. Проверка репозиториев: Убедитесь, что у вас добавлены все необходимые репозитории в build.sbt. Например, вы можете добавить Maven Central или другие репозитории, если необходимо:

    resolvers += "Maven Central" at "https://repo1.maven.org/maven2/"
  5. Корректировка build.sbt: Вот пример исправленной конфигурации с более новыми версиями, которые могут поддерживать Scala 3:

lazy val root = (project in file("."))
  .settings(
    inThisBuild(List(
      organization := "com.example",
      scalaVersion := "3.3.3"
    )),
    name := "eskimi-bidding-agent",
    libraryDependencies ++= Seq(
      "com.typesafe.akka" %% "akka-http" % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-actor-typed" % akkaVersion,
      "com.typesafe.akka" %% "akka-stream" % akkaVersion,
      "com.typesafe.akka" %% "akka-pki" % akkaVersion,
      "com.typesafe.scala-logging" %% "scala-logging" % "3.9.4",
      "de.heikoseeberger" %% "akka-http-circe" % "1.37.0", // Проверьте актуальную версию
      "de.heikoseeberger" %% "akka-http-json4s" % "1.38.0", // Проверьте актуальную версию
      "com.jason-goodwin" %% "authentikat-jwt" % "0.4.5",
      "org.json4s" %% "json4s-native" % "3.6.11",
      "io.circe" %% "circe-generic" % "0.14.1",
      "org.slf4j" % "slf4j-simple" % "1.7.30",
      "ch.qos.logback" % "logback-classic" % "1.2.3",
      "com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion % Test,
      "com.typesafe.akka" %% "akka-actor-testkit-typed" % akkaVersion % Test,
      "org.scalatest" %% "scalatest" % "3.2.3" % Test
    )
  )
  1. Итоговое действие: После внесения изменений выполните команду sbt update, чтобы SBT попытался загрузить ваши зависимости заново. Если проблема сохраняется, проверьте версии библиотек, используемых в вашем проекте, и убедитесь, что они поддерживают вашу версию Scala.

Если вы следовали всем этим шагам и всё равно сталкиваетесь с проблемами, рассмотрите возможность поиска на форумах, таких как StackOverflow, или на GitHub, поскольку эти ресурсы могут содержать актуальную информацию о возможных проблемах с конкретными версиями библиотек.

Оцените материал
Добавить комментарий

Капча загружается...