Ошибка: scala: нет scala-library * .jar в библиотеке компилятора Scala

Среда: Play 2.3.0 / Scala 2.11.1 / IntelliJ 13.1

Я использовал Typesafe Activator 1.2.1 для создания нового проекта на Scala 2.11.1. После создания проекта я запустил gen-idea. Созданный проект IDEA не компилируется с ошибкой:

Error: scala: No 'scala-library*.jar' in Scala compiler library in test

Я делаю что-то неправильно? Обходной путь?

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


person jkschneider    schedule 03.06.2014    source источник
comment
По-видимому, обходной путь - создать новый проект IntelliJ scala, выбрать домашний каталог scala, в котором установлена ​​2.11, установить флажок, чтобы убедиться, что он станет глобальной библиотекой, закройте этот проект, вернитесь к исходному проекту, удалите фасет и повторно добавить с новой глобальной библиотекой. АРГГХХХХ ... конечно есть способ получше. Я люблю язык Scala, но хрупкость инструментов меня просто бесит.   -  person jkschneider    schedule 03.06.2014
comment
Вам не нужно использовать задачу gen-idea в IDEA 13.1. Поддержка SBT теперь встроена. Вам просто нужно импортировать проект SBT через пункт меню File / Import project.   -  person Vladimir Matveev    schedule 03.06.2014
comment
Отлично, Владимир. Даже лучше, чем gen-idea. Вы можете сделать это ответом.   -  person jkschneider    schedule 03.06.2014
comment
Используя путь по умолчанию через путь New Scala SBT Project, я получаю эту ошибку с IntelliJ 2017.2.5 Scala Plugin 2017.2.11.   -  person chaotic3quilibrium    schedule 16.10.2017


Ответы (7)


Начиная с IDEA 13 вы должны использовать поддержку SBT, которая входит в комплект плагина Scala.

При этом нет необходимости добавлять сторонние плагины SBT и запускать специальные команды; просто импортируйте проект, используя пункт меню «Файл -> Импортировать проект ...», и он автоматически загрузит структуру проекта SBT и его зависимости.

person Vladimir Matveev    schedule 03.06.2014
comment
Это решение практически идеальное. IntelliJ, кажется, выбирает Scala 2.10 в качестве языкового уровня в Scala Facet, но выбрал компилятор 2.11. Настройка уровня языка на Scala 2.11 замыкает цикл здесь. - person jkschneider; 04.06.2014
comment
Встроенный плагин не работает в некоторых случаях. Я часто прибегаю к sbt gen-idea. Это связано с обновлением проектов после изменения build.sbt. - person WestCoastProjects; 04.06.2014
comment
Совет jkschneider исправил проблемы сборки для org.spec2, fwiw - person jvhang; 12.06.2014
comment
Если вы получаете ошибки компиляции сразу после импорта проекта, попробуйте закрыть и снова открыть. Работал у меня. - person dev; 27.03.2015
comment
Это тоже решение, если у вас есть ошибка Error accessing ~/.m2/repository/org/scala-lang/scala-library/2.11.8/scala-library-2.11.8.jar - person fingerprints; 27.04.2018

  1. Откройте файл -> Структуры проекта -> Библиотеки, удалите в нем любой scala sdk, например scala-sdk-2.11.8 на следующем изображении. введите описание изображения здесь

  2. Щелкните +, затем Scala SDK. введите описание изображения здесь

  3. Выберите правильный Scala SDK из списка, для меня это Ivy-Scala-2.11.8, показанный на картинке.  введите описание изображения здесь

  4. Выберите текущий проект (у меня spark-test), нажмите ОК. введите описание изображения здесь

  5. Затем нажмите ОК, чтобы закрыть его. введите описание изображения здесь

  6. Запустите еще раз, теперь должно работать.

person Searene    schedule 04.10.2017
comment
Я пробовал это, но все библиотеки на шаге 3 были отключены. Я не мог выбрать ни одного из них. - person chaotic3quilibrium; 16.10.2017
comment
Это сработало, но я понятия не имею, что изменилось? - person tusharmath; 12.11.2017

У меня была такая же проблема с файлами .idea, созданными с помощью ./activator idea с play 2.3. Чтобы быстро исправить это, загляните в «Структура проекта-> модули» и обратите внимание на имя библиотеки компилятора. Для меня это был «SBT: scala2.11.1». Загляните в «Структура проекта-> Библиотеки» и проверьте содержимое этой библиотеки. Он должен содержать scala-compiler.jar, scala-library.jar, scala-reflection.jar. Если этих библиотек нет, добавьте их (в моем случае они находятся в ~ / .sbt / boot / scala-2.11.1 / lib).

person Russell    schedule 13.07.2014
comment
Привет, Рассел, у меня точно такая же проблема. Так что же за ошибка вызывает это? проблема с активатором? - person Phil; 18.08.2014
comment
запуск ./activator idea вызывает повторное появление проблемы после этого исправления, поэтому я полагаю, что это ошибка с генерацией файла .idea активатора. Я сам не поднимал этот вопрос в команде разработчиков. Возможно, кому-то стоит так поступить ... - person Russell; 26.08.2014

Для IDEA 15 и проекта, экспортированного из Activator 1.3.5, на данный момент помогло только решение Рассела. Я исправил библиотеку компилятора scala с добавлением 3 библиотек, расположенных в ~ / .sbt / boot / scala-2.11.1 / lib, в путь к классам и классам компилятора библиотеки. После индексирования проекта я переместил эту библиотеку в глобальные библиотеки IDEA, и она там была сохранена.

person Alex Shcherbyna    schedule 28.07.2015

Я была такая же проблема.

Если вы создаете свой проект с использованием внешнего sbt, то есть sbt compile, он создаст или добавит зависимости в библиотеках (также все внешние зависимости), а scala sdk будет добавлен как SBT:scala* в зависимости от версии вашего scala. Таким образом, вы можете удалить SDK с префиксом SBT и добавить соответствующий SDK через Intellij.

File->Project Structure->Libraries

Удалите SBT SDK и добавьте его вручную.

person ketankk    schedule 21.09.2017

В IDEA 12 я исправил эту проблему, когда снял флажок «Использовать внешнюю сборку» в Settings.Compiler.

person wiseco68    schedule 10.08.2016

сейчас 2021 год, на Mac используйте IntelliJ для запуска scala:

  • core logic
    • Mac: brew install scala
    • IntelliJ: откройте файл * .scala, затем в соответствии с примечанием к автоконфигурации java JDK и Scala SDK
  • подробные инструкции: пожалуйста, обратитесь к ответу на другой пост
person crifan    schedule 10.03.2021