tl; dr: Ich kann nicht IntelliJ konfiguriert, dass die Java-Dateien im selben Verzeichnis zu erzeugen, wie gradleAnnotation Prozessor in IntelliJ und Gradle
Ich habe ein kleines Projekt, das den immutables Annotations-Prozessor verwendet. Es funktioniert wie erwartet in der Großbuchstaben-Befehlszeile, aber ich kann IntelliJ nicht dazu bringen, die generierten Dateien in dasselbe Verzeichnis auszugeben.
Das vollständige Projekt ist auf GitLab
Gradle Config:
Ich verwende die Folowing gradle Plugins:
- gradle-idea plugin, die die Idee Konfiguration Griffe
- gradle-apt-plugin die die apt-Konfiguration bietet und behandelt den Compile-Klassenpfad und die Ideenkonfig für die Annotationsverarbeitung (wenn auch das Ideen-Plugin angewendet wird)
relevanten Teile des Build-Skript (link to the full listing):
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"
}
wenn ich ./gradlew build
alles wie erwartet gestartet:
- Die Quelldatei
DataEncoding.java
verarbeitet eine der generierten Java-DateiDataEncodingEnabled.java
endet in /build/generated/source/apt/main
unter dem erwarteten Paketcom.tmtron.immutables.data
- und das erzeugte Datei in eine .class-Datei wird auch
ich die Anmerkung Verarbeitung in IntelliJ zusammengestellt aktivieren, wie durch die gradle-apt-plugin docs vorgeschlagen:
Dann führe ich ./gradlew clean
um sicher zu gehen, dass die vorherigen Dateien verschwunden sind und ich dann auf Build
- Build Project
in IntelliJ klicke.
Die Anmerkung Prozessor ausgeführt wird, aber das Problem ist, dass die erzeugte Java-Datei in der falschen Stelle endet:
Es ist in:/build/erzeugt/Quelle/apt/main/build/erzeugt/source/apt/main /com.tmtron.immutables.data
Der fettgedruckte Teil ist überflüssig.
Was mache ich falsch und wie kann ich es richtig einrichten, so dass IntelliJ und Gradle die Dateien im selben Verzeichnis erzeugen?
Hinweise:
- Ich habe natürlich schon versucht, nur die „Produktionsquellen dir“ in der Konfiguration leer IntelliJ Anmerkung zu verlassen, aber seine nicht funktioniert: verwendet dann automatisch „erzeugt“ und ich auch am Ende mit einem falschen Weg.
- IntelliJ Version 2016.3.4