Как указать IntelliJ Исключить каталоги с помощью Gradle?
Используя IntelliJ для открытия файла build.gradle
, в окне "Импорт проекта из Gradle" "Исключенные корни" предварительно заполнены каталогами .gradle
и build
.
Как указать, какие каталоги должны быть исключены (или не исключены) в файле build.gradle
?
В частности, я использую плагин буфера протокола, который помещает сгенерированные источники в каталог /build/generated-sources/
. Если каталог build
исключен, тогда мой исходный класс не видит сгенерированные классы.
Подробности: IntelliJ 12.1.3, Gradle 1.4
Ответы
Ответ 1
Как показано в Gradle Справочник по языку сборки, вы можете настроить свойство idea.module.excludeDirs
, имеющее тип List<File>
. По-видимому, IDEA не поддерживает включение подкаталогов исключенных каталогов, поэтому вам придется исключить всех братьев и сестер build/generated-sources
. Например:
idea {
module {
excludeDirs = [file(".gradle")]
["classes", "docs", "dependency-cache", "libs", "reports", "resources", "test-results", "tmp"].each {
excludeDirs << file("$buildDir/$it")
}
}
}
Если поддерживается плагином Protocol Buffer, может быть проще помещать созданные источники в место вне build
и сделать это место известным для задачи clean
(например, clean.delete "generated-sources"
).
Ответ 2
Другое решение. Работает с Idea 13.
idea.module {
excludeDirs -= file(buildDir) //1
buildDir.listFiles({d,f->f != 'generated-sources'} as FilenameFilter).each {excludeDirs += it}} //2
- Удалите
buildDir
из excludeDirs
.
- Исключить каждого дочернего элемента
buildDir
(кроме generating-source
).