«Невозможно начать компиляцию: для модуля не указан выходной путь…»

108

У меня очень простой проект Java + Gradle. Строится нормально. Он отлично работает из оболочки с помощью "gradle run". Однако, если я попытаюсь запустить IntelliJ, я получу:

Cannot start compilation: the output path is not specified for module "xyz" Specify the output path in Configure Project.

Мой "Вывод компилятора" установлен на "Наследовать путь вывода компиляции проекта". Мне не нужен настраиваемый путь вывода, каким бы он ни был, просто выполните обычную сборку и запуск Gradle.

глина
источник
1
При запуске кода из IntelliJ он будет скомпилирован и запущен IntelliJ, а не Gradle, и будет использоваться другой выходной каталог сборки. (Android - это другая история.) Однако, если сборка Gradle импортирована правильно, выходной каталог IntelliJ уже должен быть настроен.
Питер Нидервизер

Ответы:

104

Вам просто нужно перейти в свой Module settings > Projectи указать «Вывод компилятора проекта» и сделать так, чтобы ваши модули были унаследованы от проекта. (Для этого перейдите на Modules > Paths > Inherit project.

Это помогло мне.

пранаврао1
источник
20
Что ж, Inherit Projectу меня сработало то, что я не выбрал этот вариант
Криш Мунот
6
Почему он сам не может в этом разобраться. Все говорят, что IntelliJ лучше Eclipse, но, по моему опыту, он не может думать самостоятельно.
Эндрю С.
FYI, я обнаружил, что в IntelliJ вы делаете File> New> Module ... и создаете модуль Java, путь вывода должен быть установлен по умолчанию.
J
Если это не сработает, не забудьте перезапустить IntelliJ. Исправил для меня.
Коби Фишер
98

Вы должны указать путь в поле « Вывод компилятора проекта » в

File> Project Structure...> Project>Project compiler output

Этот путь будет использоваться для хранения всех результатов компиляции проекта .

BullyWiiPlaza
источник
10

При настройке плагина idea в gradle вы должны определить выходные каталоги следующим образом.

idea{
    module{
        inheritOutputDirs = false
        outputDir = compileJava.destinationDir
        testOutputDir = compileTestJava.destinationDir
    }
}
лемиорган
источник
выглядит отлично. В какой файл мне поместить эту конфигурацию?
глина
Вы должны поместить его в файл build.gradle в своем проекте.
lemiorhan
10

Я отвечаю на это, чтобы найти решение, когда мне снова придется гуглить эту ошибку.

Установите для пути вывода компиляции проекта значение path_of_the_project_folder/out. Вот что работает сегодня. Документация intellj создает впечатление, что мы можем выбрать любую папку, но это не так.

Кандж
источник
7

Если ни один из вышеперечисленных методов не помог, попробуйте, это сработало для меня.

Перейдите в File> Project Structure> Project, а затем в Project Compiler Output щелкните три точки и укажите путь к имени вашего проекта (имя файла), а затем нажмите Apply, а затем Ok .

Это должно быть так, как на картинке в публикации.

Прияншу Кумар
источник
8
В вашем ответе нет изображения.
Джеймс Уайтли
2
@priyanshu: Серьезно, в вашем посте нет изображения.
Pawan
4

Откройте файл .iml. Найдите ключевое слово NewModuleRootManager. Убедитесь, что для атрибута "наследование-вывод-компилятора" установлено значение "истина" или нет. Если не установлено значение true.

Как это :

component name="NewModuleRootManager" inherit-compiler-output="true">
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />
mdev
источник
1

После этого

Две вещи нужно сделать:

Настройки проекта> Вывод компилятора проекта> Установить как «Путь к проекту (фактический путь к проекту)» + «\ out».

Настройки проекта> Модуль> Путь> Выберите «Наследовать путь компиляции проекта» »

Если кнопка запущена не активна

Вы должны перезагрузить IDEA

Денис Тимофеев
источник
0

измените раскрывающийся список, чтобы начать файл вашего проекта

введите описание изображения здесь

dev001
источник
0

Я тоже получаю эту ошибку при создании проекта в IntelliJ без использования шаблона.

У меня установлено 2 SDK: Amazon Corretto и версия java 11.0.4, и поэтому, когда у меня появляется эта ошибка, я делаю «смените SDK», обычно она отлично работает с Corretto.

для этого вам нужно щелкнуть File (в IntelliJ) / Project Structure / Project / Project SDK: выберите corretto из раскрывающегося списка (или отметьте опцию на вашем компьютере), как показано здесь

надеюсь, это сработает и для вас

Бест, Константин

Константин
источник
0

Ошибки, вызванные отсутствием предопределенной папки для скомпилированного файла класса, который по умолчанию обычно находится в папке / out. Вы можете попробовать закрыть Intellij> Импортировать проект> Из существующего источника. Это решит эту проблему.

logbasex
источник