Nano Hash - криптовалюты, майнинг, программирование

Scala build.sbt не распознается IntelliJ

У меня возникла проблема, из-за которой мой файл build.sbt не загружается должным образом с помощью IntelliJ (Ultimate 2020.2.3). Я создаю новый проект Scala sbt с помощью мастера IntelliJ (файл › новый › проект › scala/sbt) и добавляю новую зависимость в файл buid.sbt, но когда я пытаюсь импортировать его в один из моих файлов классов, IntelliJ не будет скомпилировать мой проект из-за проблемы с зависимостями.

Окно инструмента sbt подбирает внешние зависимости, но внешние зависимости моего проекта вообще не содержат библиотеку, даже после обновления проекта. Кроме того, в моем файле build.sbt есть куча ошибок, например, IntelliJ не распознает его должным образом, но я установил плагин Scala, поэтому я не знаю, что еще я могу сделать?

Здесь вы можете видеть, что я добавил зависимость org.slf4j в свой build.sbt; Он подхватывается окном инструментов sbt (справа), но не моим проектом (слева).

введите здесь описание изображения

Когда я наводил курсор на libraryDependencies в файле build.sbt, похоже, он не распознавал синтаксис sbt:

введите здесь описание изображения

Я не могу импортировать библиотеку в свой файл класса, и проект не собирается:

введите здесь описание изображения

Я новичок в Scala, и я просто пытаюсь создать базовый проект hello world, но, похоже, я не могу пройти мимо этой неприятной проблемы.

01.11.2020

  • Есть ли ошибки/предупреждения в файле idea.log (Справка | Показать вход...)? 02.11.2020
  • Да, в логах моего плагина Gradle была ошибка. После того, как я отключил/включил все ненужные плагины, все заработало! Спасибо, что указали мне правильное направление. 02.11.2020

Ответы:


1

Вы можете попробовать сначала создать проект SBT вручную в каком-нибудь каталоге. build.sbt одного будет достаточно.

Затем запустите sbt в этом каталоге, чтобы убедиться, что оболочка SBT работает правильно. Попробуйте некоторые команды, такие как sbt compile, sbt run, с помощью какого-нибудь приложения helloworld. Когда вы создаете приложение helloworld, помните о структуре каталогов, в которую вы его поместили, то есть: src/main/scala/HelloWorld.scala.

Если все работает, перейдите в IntelliJ и импортируйте/откройте проект оттуда - выберите build.sbt.

Когда вы создаете или импортируете проект SBT из IntelliJ, требуется некоторое время, чтобы загрузить все, загрузить компилятор и т. д. Просто оставьте это, пока это не будет сделано. То же самое касается первой компиляции, когда компилятор нужно скомпилировать :).

Чтобы настроить пример проекта, вы можете ввести следующие команды оболочки:

mkdir untitled
cd untitled/

echo 'name := "untitled"

version := "0.1"

scalaVersion := "2.13.3"

libraryDependencies ++= Seq(
  "org.slf4j" % "slf4j-simple" % "1.7.26",
)
' > build.sbt

mkdir -p src/main/scala/

echo 'object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello World")
  }
}
' > src/main/scala/HelloWorld.scala

sbt run

Если с этими шагами проблем нет, импортируйте build.sbt в IntelliJ.

02.11.2020
  • Спасибо за Ваш ответ. Я действительно пробовал это, но у меня все еще была та же проблема. Для меня это решило отключение всех ненужных плагинов и повторное включение. Это, казалось, сработало 02.11.2020

  • 2

    Наконец-то я смог обойти эту проблему. К сожалению, я не уверен на 100%, что в конце концов решило проблему, но отключение нескольких плагинов, которые я не использовал, похоже, решило проблему для меня.

    Я подозреваю, что это мог быть плагин Gradle, так как я видел некоторые ошибки в файле idea.log, но после повторного включения плагина Gradle для проверки все еще работает, поэтому не уверен.

    02.11.2020
  • Отключение и повторное включение всех пугинов сработало для меня как по волшебству!! Ничто другое не было эффективным: ни изменение рестартов/версий intellij, ни обновление версий sbt... только повторное включение этого плагина помогло. 24.05.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..