tl; dr: я не могу настроить IntelliJ для создания файлов java в том же каталоге, что и gradle.
У меня есть небольшой проект, в котором используется процессор аннотаций immutables. Он работает должным образом в сборке командной строки gradle, но я не могу заставить IntelliJ выводить сгенерированные файлы в тот же каталог.
Полный проект доступен на GitLab.
Конфигурация Gradle:
Я использую следующие плагины Gradle:
- плагин gradle-idea, который обрабатывает конфигурацию идеи.
- gradle-apt-plugin, который предоставляет подходящую конфигурацию и обрабатывает путь и идею класса компиляции. конфигурация, относящаяся к обработке аннотаций (если также применяется плагин идеи)
соответствующие части скрипта сборки (ссылка на полный список а>):
apply plugin: 'java'
apply plugin: "net.ltgt.apt"
apply plugin: 'idea'
dependencies {
def immutablesVersion = '2.3.9'
compileOnly "org.immutables:value:$immutablesVersion:annotations"
compileOnly "org.immutables:encode:$immutablesVersion"
apt "org.immutables:value:$immutablesVersion"
}
когда я начинаю ./gradlew build
, все как ожидалось:
- Исходный файл
DataEncoding.java
обрабатывается, и сгенерированный java-файлDataEncodingEnabled.java
попадает в /build/generated/source/apt/main
под ожидаемым пакетомcom.tmtron.immutables.data
- и сгенерированный файл также компилируется в файл .class
В IntelliJ я активирую обработку аннотаций в соответствии с рекомендациями gradle-apt-plugin docs:
Затем я выполняю ./gradlew clean
, чтобы убедиться, что предыдущие файлы исчезли, а затем нажимаю Build
- Build Project
в IntelliJ.
Обработчик аннотаций выполняется, но проблема в том, что сгенерированный файл java оказывается в неправильном месте: < a href = "https://i.stack.imgur.com/bSSEx.png" rel = "noreferrer">
Он находится в: /build/generated/source/apt/main/<▪build/generated/source/apt/main sizes/com.tmtron.immutables.data
жирная часть избыточна.
Что я делаю не так и как я могу его правильно настроить, чтобы IntelliJ и gradle генерировали файлы в одном каталоге?
Примечания:
- Я, конечно, уже пытался просто оставить «Каталог исходных кодов производства» в конфигурации аннотации IntelliJ пустым, но он не работает: тогда он автоматически использует «сгенерированный», и я также получаю неправильный путь.
- IntelliJ версии 2016.3.4