Инструменты объекта не являются членами пакета scala

В моем искровом приложении я пытаюсь использовать fluentd-scala-logger, для чего мне пришлось включить дополнительную зависимость в свой build.sbt Это две строки, которые я добавил в свой build.sbt:

resolvers += "Apache Maven Central Repository" at "https://repo.maven.apache.org/maven2/"
"org.fluentd" %% "fluent-logger-scala" % "0.7.0"

Мой финальный build.sbt выглядит так:

name := "sample"
version := "1.4"
scalaVersion := "2.11.8"
resolvers += "Apache Maven Central Repository" at "https://repo.maven.apache.org/maven2/"
libraryDependencies ++= Seq("org.elasticsearch" %% "elasticsearch-spark" % "2.1.2", "org.apache.spark" %% "spark-sql" % "2.1.2", "org.apache.kafka" % "kafka-clients" % "2.4.1", "org.fluentd" %% "fluent-logger-scala" % "0.7.0")

Как только я делаю пакет sbt для объединения моего приложения spark в банку, я сталкиваюсь со следующей проблемой:

object tools is not a member of package scala
[error] import scala.tools.nsc.io.File

Я не сталкивался с этим, когда мой sbt ранее выглядел так (без плавной зависимости):

name := "sample"
version := "1.4"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq("org.elasticsearch" %% "elasticsearch-spark" % "2.1.2", "org.apache.spark" %% "spark-sql" % "2.1.2", "org.apache.kafka" % "kafka-clients" % "2.4.1")

Является ли строка распознавателей причиной проблемы? или я что-то совсем другое упускаю. Я использую sbt версию 1.4.5 и версию Scala: 2.11.8.

Это довольно странная ошибка, я бы порекомендовал вам три вещи. 1) Попробуйте несколько версий sbt, таких как 1.4.4, 1.3.13 и т. д. 2) Спросите в Gitter Room (возможно, также в Scala room). 3) Поиск в проблемах github, если об этом уже сообщалось.

Luis Miguel Mejía Suárez 21.12.2020 15:56

Выбор предыдущего sbt, как предлагает @LuisMiguelMejíaSuárez, устраняет для меня ошибку «объектные инструменты». Я использую intellij, и он переопределяет версию sbt, настроенную в проекте, и вместо этого использует последнюю версию, если вы не скажете использовать версию из build.properties.

Richard Osseweyer 19.04.2021 11:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
2
1 152
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.7.0" intransitive()

Он будет импортировать эту зависимость без ее зависимостей.

Сказав это, я посмотрел на зависимости этой библиотеки и попытался исключить их все 1 на 1:

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.7.0" excludeAll(
  ExclusionRule("org.msgpack", "msgpack"),
  ExclusionRule("org.slf4j", "slf4j-api"),
  ExclusionRule("ch.qos.logback", "logback-classic"),
  ExclusionRule("junit", "junit"),
  )

но это не сработало. Так что я действительно не могу это объяснить.

Было бы здорово, если бы было объяснение. Но все равно спасибо, моя ошибка исчезла. :)

Akshat Chaturvedi 24.12.2020 06:22

@AkshatChaturvedi Хотел бы я совершенно неправильно понять, что здесь происходит. Я просто хотел знать, работает ли он без зависимостей, так что это мои попытки. Я предполагаю, что один из плагинов этого пакета переопределяет какое-то пространство имен, но я не уверен.

Tomer Shetah 24.12.2020 06:43

Другие вопросы по теме