Как включить каталог сборки в качестве исходного каталога в intellij при компиляции с помощью gradle
по умолчанию плагин gradle idea помечает папку сборки как исключенную. Как включить эту папку в качестве исходной? (или избегайте его исключения, как это кажется по умолчанию...)
в моей сборке модуля.файл gradle я попробовал с двумя следующими конфигурациями:
idea {
module {
excludeDirs -= file('build/generated')
}
}
и:
idea {
module {
sourceDirs += file('build/generated')
}
}
С этими двумя конфигурациями папка build / generated всегда появляется как исключенные папки в IntelliJ после компиляции. В IntelliJ мне всегда нужно идти в "настройки проекта", "модули", а затем во вкладке "Источники", чтобы удалить папку сборки из исключенных папок и запустить мой проект.
5 ответов
изменить код от
file('build/generated')
to
file("$buildDir/generated")
Я использую вот такой код:
ext {
cxfOutputDir = file("$buildDir/generated-sources/cxf")
}
idea.module {
excludeDirs -= file("$buildDir")
sourceDirs += cxfOutputDir
}
вы определенно хотите build
каталог, который будет исключен в IntelliJ. В противном случае индексация займет больше времени, вы получите дубликаты в поиске и т. д. Поскольку IntelliJ не поддерживает включение подкаталога исключенного каталога, мое предпочтительное решение-поместить сгенерированные файлы в каталог вне build
. Например, вы можете поместить их в generated
(относительно каталога проекта) и настройте clean
задач таким образом:
clean {
delete "generated"
}
другой вариант чтобы исключить все подкаталоги build
за исключением build/generated
. Однако с учетом того, что каталоги, подлежащие исключению, должны быть перечислены в явном виде, это требует дополнительных усилий и сопряжено с риском их хрупкости. (Вы не хотите, чтобы это ломалось каждый раз, когда плагин/задача/и т. д. добавляет новый подкаталог.)
используйте стандартное расположение для сгенерированного исходного кода-поддерживается без дополнительной конфигурации:
${project.buildDir}/generated-sources/something
или
${project.buildDir}/generated-test-sources/something
для сгенерированного кода только для тестов.
something
технологии, например: jpamodel, cxf etc.
Первый способ
['integration/src/generated'].each {
idea.module.sourceDirs += file(it)
sourceSets.main.java.srcDir it
compileJava.source file(it)
}
второй способ
project.ext {
jaxbTargetDir = file("src/generated/java")
}
idea.module {
excludeDirs -= file("$buildDir")
sourceDirs += jaxbTargetDir
}