Sbt загружает зависимость, но IntelliJ не может разрешить ее использование - PullRequest
0 голосов
/ 10 февраля 2019

Проблема:

Я очень плохо знаком с Scala (но знаком с Java).Я хотел клонировать проект Sbt , и после нескольких обновлений сборки он, наконец, синхронизировался, но когда я открыл один из файлов проекта, он показал Cannot resolve symbol cassovary ( Cassovary - библиотека от Twitter),Я проверил внешние зависимости IDEA и, к моему удивлению, он был загружен только тем, что META-INF показывал , и когда я проверял локальную папку ".ivy2", там были байт-код и исходные файлы!

Интересно, что все зависимости библиотеки разрешены, и IDEA загружает их правильно.Только основная зависимость имеет эту проблему.Cassovary not loaded correctly Библиотека Cassovary не загружена, но ее зависимости

Версия Sbt: 1.2.1Версия IDEA: 20.18.3.2 Community Edition

То, что я пробовал:

Неверный кеш / Перезапуск, разные версии, удаление папки .ivy2 вручную и повторная загрузка зависимостей, проверка проблем с библиотеками вGithub


build.sbt file

name := "fast-ppr"

version := "1.0"

scalaVersion := "2.11.11"

//resolvers ++= Seq(
//  Resolver.sonatypeRepo("releases"),
//  "Twitter Maven" at "https://maven.twttr.com"
//)

libraryDependencies += "com.twitter" %% "cassovary" % "4.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"

enter image description here

1 Ответ

0 голосов
/ 10 февраля 2019

Хочу предоставить несколько действий, которые обычно помогают мне с такими проблемами Idea:

  1. Попробуйте запустить команду SBT в консоли перед импортом сборки в Idea (прежде чем удалять папку .idea, если она былауже создан).В моем текущем проекте у нас даже есть такой шаг в нашем FAQ для новичков

  2. Попробуйте установить SBT как вариант сборки по умолчанию для Idea (скриншот ниже).Это резко уменьшило количество странных проблем компиляции для меня.

Опция сборки Sbt из настроек:

Sbt build option from settings

Обновление: Кажется https://github.com/plofgren/fast-ppr-scala изначально был построен с использованием Scala 2.10, а cassovary 3.2.0 доступен только для 2.10.

Пожалуйста, попробуйте установить scalaVersion: = "2.10.7" и оставить оригинальную версию cassovary в build.sbt.API библиотеки был изменен в 4.0.0 по сравнению с 3.2.0, поэтому без изменений в коде он не может быть скомпилирован.И именно поэтому вы получаете ошибки.

Затем вы можете запустить «sbt clean reload compile» из консоли, чтобы проверить, работает ли он.

Поддержка AFAIK cassovary 2.11 начиная с 4.0.0, поэтому для запуска с более новой версией библиотеки вынеобходимо обновить код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...