После обновления до Intellij 2017.2, построение моего проекта создает каталог /out
, который содержит сгенерированные исходные файлы и файлы ресурсов. Эти файлы дублируют файлы, которые уже содержатся в /build
, и приводят к ошибкам компилятора duplicate class
для сгенерированных классов. Любые идеи по исправлению, которые мне нужны в Gradle или IntelliJ?
Создание с помощью каталога Intellij 2017.2/out дублирует файлы в каталоге/build
Ответ 1
IntelliJ IDEA больше не делится результатами с Gradle, Подробнее см. в этом билете.
Вы можете либо переопределить его с помощью следующей конфигурации:
allprojects {
apply plugin: 'idea'
idea {
module {
outputDir file('build/classes/main')
testOutputDir file('build/classes/test')
}
}
if(project.convention.findPlugin(JavaPluginConvention)) {
// Change the output directory for the main and test source sets back to the old path
sourceSets.main.output.classesDir = new File(buildDir, "classes/main")
sourceSets.test.output.classesDir = new File(buildDir, "classes/test")
}
}
или делегируйте сборку в Gradle: Файл | Настройки | Создание, выполнение, развертывание | Строительный инструмент | Gradle | Runner = > Делегировать IDE для создания/запуска действий до gradle.
Ответ 2
Файл | Структура проекта | Настройки проекта | Модули | Вкладка "Пути" | Выход компилятора
Выберите "Наследовать путь к компиляции проекта", чтобы продолжить использование /build
для сборки артефактов
Ответ 3
Вот мое понимание:
По сути, это
Gradle build path
для проблемы несовместимости междуGradle build path
иIDEA output path
.
- проблема - https://github.com/gradle/gradle/issues/2315
- решение - держать эти два каталога отдельно, поэтому у вас есть два (
out/
иbuild/
) https://youtrack.jetbrains.com/issue/IDEA-189063