Подтвердить что ты не робот

"Неизвестный артефакт. Не разрешенная или проиндексированная" ошибка для scalatest

Я пытаюсь изменить файл build.sbt, чтобы добавить скалярные зависимости в IntelliJ IDEA. В консоли нет сообщения об ошибке, но я получил Unknown artifact. Not resolved or indexed., когда я навел указатель мыши на подчеркивание. Как я могу это решить? Большое спасибо заранее!

Это строка, которую я использовал для добавления зависимости: libraryDependencies += "org.scalatest" % "scalatest_2.11" % "3.0.1" % "test"

И вот мой экран выглядит так: введите описание изображения здесь

4b9b3361

Ответ 1

Если вы только что добавили зависимость, возможно, она еще не была загружена. Для этого обновите/импортируйте проект.

Если он уже был загружен, нажмите Alt + Enter в IntelliJ в строках с предупреждением и выберите быстрое исправление "обновить индексы преобразователей проекта", затем выберите индекс "локальный кэш" и нажмите "обновить".

Вы можете убедиться, что обновление сработало, проверив дату в столбце "Обновлено":

Resolver indexes

Ответ 2

У меня была та же проблема. Файл → Invalidate Caches/Restart... исправил проблему для меня.
Просто обновление/обновление проекта в моем случае не работало.

Ответ 3

В моей ситуации я пробовал:

  • Alt + Enter, затем Refresh Project.
  • Обновить локальный кэш Resolvers.
  • Файл → Недействительный кеш/перезапуск.

Ничего из этого не было сделано. Итак, для дальнейшего использования, вот мое решение для этой проблемы:

  1. Убедитесь, что плагин интеграции Maven включен, и вместо обновления Resolvers Local cache обновите публикацию, которая никогда не обновляется.

Этот процесс может занять некоторое время, чтобы завершить загрузку, если он недавно установлен IntelliJ IDEA.

Ответ 4

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

Из Автоматического управления зависимостями в документах sbt:

SBT 1.3. 0+ использует Coursier для реализации управления зависимостями. До версии 1.3.0 компания sbt использовала Apache Ivy в течение десяти лет. Курсье хорошо справляется с задачей обеспечения совместимости, но некоторые функции могут быть характерны для Apache Ivy. В этих случаях вы можете использовать следующую настройку, чтобы вернуться к Ivy:

ThisBuild / useCoursier := false

Моя интерпретация моей ситуации заключается в том, что IntelliJ не имеет надлежащей поддержки Coursier (что странно), но sbt использует Coursier для загрузки зависимостей, тогда IntelliJ не может их найти, потому что он смотрит в мой кэш плюща. Facepalm

Я использую OSX, IntelliJ IDEA Ultimate 2019.2.3, Scala 2.12.8, JDK8 (потому что я работаю со Spark) и sbt 1.3.3.

Добавление вышеуказанной строки в мой файл build.sbt решило проблему для меня. Мой каталог ~/.ivy2/cache обновлен. Coursier хранит свой кеш в ~/Library/Caches/Coursier/v1 (документы), но я не могу найти способ заставить IntelliJ использовать кеш Coursier для разрешения зависимостей. Любая дополнительная информация по этому вопросу от кого-то, кто знает больше о СБТ, чем я, будет приветствоваться!