build.gradle anpassen

Spock, Java und Groovy gemeinsam nutzen

Damit Spock in einem Spring Boot Projekt genutzt werden kann, muss die Konfigurationsdatei angepasst werden. Sonst werden die Groovy-Klassen in den Tests nicht gefunden. Für das Beispielprojekt sieht das so aus:

...
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4')
    testCompile('org.spockframework:spock-spring:1.0-groovy-2.4')
...
sourceSets {
    main {
        java { srcDirs = [] }
        groovy { srcDirs = ['src/main/groovy', 'src/main/java'] }
    }
    test {
        groovy {
            srcDirs = ['src/main/groovy', 'src/main/java', 'src/test/groovy', 'src/test/java']
        }
    }
}
Zeilen 70, 72
die source root Verzeichnisse werden für den Test explizit konfiguriert

build.gradle und IntelliJ IDEA

Die IntelliJ IDEA IDE hat ihre eigene Projektverwaltung, kann aber auch mit Gradle Projekten arbeiten. Für ein existierendes Projekt öffnet man dazu unter New→Open… die build.gradle Datei des Projekts. Daraufhin wird eine .iml Datei angelegt, die die native Projektstruktur abbildet. Wenn jetzt wie oben Änderungen an der build.gradle durchgeführt werden, wird die .iml Datei nicht aktualisiert. Als Konsequenz werden z.B. manchmal Klassen nicht gefunden, obwohl der Pfad in der build Datei richtig enthalten ist. Das passiert beispielsweise, wenn man den Typ einer Dependency von run auf compile ändert. Ein Workaround bei dieser Inkonsistenz ist, das Projekt zu schließen, die build.gradle neu zu öffnen und im anschließenden Dialog die IntelliJ Projektdatei zu löschen. Sie wird dann korrekt neu erzeugt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.