Ошибка: объект rocksdb не является членом пакета orgs - PullRequest
0 голосов
/ 05 октября 2019

У меня проблема с использованием библиотеки rocksDb в scala.

Я пытаюсь импортировать org.rocksdb.RocksDB;в моем коде, но я продолжаю нажимать с этой ошибкой:

object rocksdb не является членом пакета org.

Я искал в Интернете и обнаружил, что использование build.sbt и включение зависимости библиотеки может решитьпроблема, но я понятия не имею, какую версию использовать. Я видел примеры build.sbt для flink и других вариантов использования, но не в scala. Любые выводы по этому вопросу высоко ценятся.

1 Ответ

1 голос
/ 06 октября 2019

В большинстве случаев для проектов, больших чем hello-world, требуется использование инструмента сборки.

Популярные инструменты сборки для проектов Scala: sbt, maven и gradle.

Каждый из этих инструментов сборки имеет свой собственный способ добавления библиотек зависимостей в проект.

Итак, первый вопрос - какой инструмент сборки вы даже используете для своего проекта?

В случае sbt конфигурация проекта выполняется с использованием файла build.sbt.

Базовый проект sbt выглядит следующим образом:

YourProject
├── build.sbt
├── project
│   └── build.properties
└── src
    └── main
        └── scala
            └── YouCode.scala

Вы можете создать эту структуру вручную или, если вы используете IntelliJ Idea, Вы можете создать новый проект sbt, просто используя File -> New -> Project -> Scala -> sbt.

Будучи новичком, я настоятельно рекомендую вам использовать IntelliJ Idea с плагином Scala. Это поможет вам упростить многие вещи.

Для получения более подробной информации о настройке как с помощью intellj, так и sbt- https://www.scala -lang.org / download / .

project/build.properties предоставляет версию sbt, используемую для этого проекта,

sbt.version = 1.3.0

Голая кость build.sbt выглядит следующим образом,

name := "YourProject"

version := "1.0"

scalaVersion := "2.12.8"

Сейчас, В своем недавно созданном проекте вы можете добавить в качестве зависимости библиотеку rocks-db (и другие библиотеки), добавив следующее к вашему build.sbt,

libraryDependencies ++= Seq(
  "org.rocksdb" % "rocksdbjni" % "6.2.2",
  "some.other" % "some-dependecy" % "other-version",
  ...
)

Я включил версию "6.2.2"здесь. Относительно того, какая версия библиотеки RockSDB будет зависеть от версии RockSDB, к которой вы подключаетесь. Лучше всего выбрать ту же версию, что и версию rocksdb.

...