Ошибка компиляции Scala в IntelliJ: не удалось найти выходной каталог
IntelliJ IDEA (последняя версия сообщества) не может скомпилировать компилятор dotty с ошибкой:
scala.reflect.internal.FatalError: Could not find an output directory for
/src/contrib/dotty/scala-backend/src/compiler/scala/tools/nsc/backend/ScalaPrimitivesOps.scala
in List(
(/src/contrib/dotty/compiler/test-resources,/src/contrib/dotty/compiler/target/scala-2.12/classes),
(/src/contrib/dotty/compiler/target/scala-2.12/resource_managed/main,/src/contrib/dotty/compiler/target/scala-2.12/classes),
(/src/contrib/dotty/compiler/target/scala-2.12/src_managed/main,/src/contrib/dotty/compiler/target/scala-2.12/classes),
(/src/contrib/dotty/compiler/test,/src/contrib/dotty/compiler/target/scala-2.12/classes),
(/src/contrib/dotty/compiler/src,/src/contrib/dotty/compiler/target/scala-2.12/classes))
Очевидно, в коде нет ничего плохого, и Дотти, кажется, прекрасно компилирует с помощью sbt, потому что run
команда работает. Есть ли что-то особенное, что нужно сделать для проекта sbt, чтобы IDEA компилировалась с использованием sbt? Это вызывает эту ошибку? Иначе, что означает эта ошибка?
Воспроизвести
Используйте новую установку IntelliJ IDEA после удаления любых настроек из предыдущих установок.
Загрузите репозиторий с
git clone --recursive https://github.com/lampepfl/dotty
Убедитесь, что новейшая версия
sbt
установлено. Бежатьsbt managedSources
из корневого каталога проекта.Импортируйте в IntelliJ, используя настройки
Import project from external model
типаsbt
с Oracle JDK 1.8. В противном случае сохраните значения по умолчанию.Щелкните правой кнопкой мыши по проекту в проводнике проекта и выберите
Load/Unload Modules...
, Выгрузить все модули кромеdotty
,dotty-compiler
,dotty-library
а такжеdotty-interfaces
, (Модули, перечисленные в http://dotty.epfl.ch/docs/contributing/intellij-idea.html)В проводнике проекта нажмите на
compiler
, ОтBuild
щелчок менюBuild Module 'dotty-compiler'
,
Что не исправит
Это не исправляет ничего делать File
=> Invalidate Caches/Restart
,
Он ничего не исправляет, чтобы все модули были загружены.
2 ответа
По моему опыту, одна из причин такого рода ошибок - если вы открыли выходную папку в оболочке или что-то вроде этого. Похоже, что иногда IDEA пытается удалить всю папку, и если она не может этого сделать, потому что папка используется, это таинственным образом приводит к такой ошибке.