"Неизвестный артефакт. Не разрешенная или проиндексированная" ошибка для scalatest
Я пытаюсь изменить файл build.sbt, чтобы добавить скалярные зависимости в IntelliJ IDEA. В консоли нет сообщения об ошибке, но я получил Unknown artifact. Not resolved or indexed.
, когда я навел указатель мыши на подчеркивание. Как я могу это решить? Большое спасибо заранее!
Это строка, которую я использовал для добавления зависимости: libraryDependencies += "org.scalatest" % "scalatest_2.11" % "3.0.1" % "test"
И вот мой экран выглядит так:
![введите описание изображения здесь]()
Ответы
Ответ 1
Если вы только что добавили зависимость, возможно, она еще не была загружена. Для этого обновите/импортируйте проект.
Если он уже был загружен, нажмите Alt + Enter в IntelliJ в строках с предупреждением и выберите быстрое исправление "обновить индексы преобразователей проекта", затем выберите индекс "локальный кэш" и нажмите "обновить".
Вы можете убедиться, что обновление сработало, проверив дату в столбце "Обновлено":
![Resolver indexes]()
Ответ 2
У меня была та же проблема. Файл → Invalidate Caches/Restart... исправил проблему для меня.
Просто обновление/обновление проекта в моем случае не работало.
Ответ 3
В моей ситуации я пробовал:
- Alt + Enter, затем Refresh Project.
- Обновить локальный кэш Resolvers.
- Файл → Недействительный кеш/перезапуск.
Ничего из этого не было сделано. Итак, для дальнейшего использования, вот мое решение для этой проблемы:
- Убедитесь, что плагин интеграции 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 для разрешения зависимостей. Любая дополнительная информация по этому вопросу от кого-то, кто знает больше о СБТ, чем я, будет приветствоваться!