Ошибка компиляции 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? Это вызывает эту ошибку? Иначе, что означает эта ошибка?

Воспроизвести

  1. Используйте новую установку IntelliJ IDEA после удаления любых настроек из предыдущих установок.

  2. Загрузите репозиторий с git clone --recursive https://github.com/lampepfl/dotty

  3. Убедитесь, что новейшая версия sbt установлено. Бежать sbt managedSources из корневого каталога проекта.

  4. Импортируйте в IntelliJ, используя настройки Import project from external model типа sbt с Oracle JDK 1.8. В противном случае сохраните значения по умолчанию.

  5. Щелкните правой кнопкой мыши по проекту в проводнике проекта и выберите Load/Unload Modules..., Выгрузить все модули кроме dotty, dotty-compiler, dotty-library а также dotty-interfaces, (Модули, перечисленные в http://dotty.epfl.ch/docs/contributing/intellij-idea.html)

  6. В проводнике проекта нажмите на compiler, От Build щелчок меню Build Module 'dotty-compiler',

Что не исправит

Это не исправляет ничего делать File => Invalidate Caches/Restart,

Он ничего не исправляет, чтобы все модули были загружены.

2 ответа

Решение

Вы можете попробовать использовать встроенную оболочку sbt для компиляции проектов sbt:

По моему опыту, одна из причин такого рода ошибок - если вы открыли выходную папку в оболочке или что-то вроде этого. Похоже, что иногда IDEA пытается удалить всю папку, и если она не может этого сделать, потому что папка используется, это таинственным образом приводит к такой ошибке.

Другие вопросы по тегам