Ich habe eine Java-Bibliothek von Gradle 2.4, die von einigen Java 6-Anwendungen verwendet wird, einige von Java 7, andere von Java 8, und einige, die Groovy 2.x sind. Als solche wie rückwärtskompatibel wie möglich sein, ich schreibe die lib sowohl ein haben sourceCompatibility
sowie ein targetCompatibility
von 1.6
:Verwenden von Gradle und Groovy/Spock zum Testen einer Java 6-Lib oder -App
build.gradle
============
apply plugin: 'java'
apply plugin: 'groovy'
sourceCompatibility = '1.6'
targetCompatibility = '1.6'
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile (
'org.slf4j:slf4j-api:1.7.12'
)
testCompile (
'org.codehaus.groovy:groovy-all:2.4.6'
,'org.spockframework:spock-core:1.0-groovy-2.4'
)
}
Allerdings gibt es keinen Grund, warum ich nicht in der Lage sein schreibe meine Komponententests in Groovy/Spock. Solange Groovy nicht Teil des main/compile/runtime classpath ist, sollte ich meine Tests in jeder beliebigen JVM-Sprache schreiben können! Und ich wähle Groovy/Spock!
Das Problem ist, ich habe so etwas noch nie gemacht. I denke, Ich muss Groovy-All und Spock zum Klassenpfad testCompile
hinzufügen, aber ich bin mir nicht sicher, ob ich das Groovy-Plugin oder nicht, sowie alle anderen Konfigurationen anwenden muss.
Nochmal:
- Der Haupt Kompilierung/runtime Classpath muss Groovy frei sein und muss mit Java 1.6
- Der Test der Kompilierung/runtime Classpath kompatibel sein können alles umfassen ich
mögen Irgendwelche Ideen, welche spezifischen Änderungen ich oben machen muss?
Danke @alexanerific (+1) - bitte sehen Sie meine bearbeitete 'build.gradle' - sieht das jetzt richtig aus? Danke noch einmal! – smeeb
Sieht ziemlich gut zu mir aus. Die einzige Sache, auf die Sie achten sollten, ist die Verwendung von Groovy 2.3+. http://groovy-lang.org/download.html#requirements beschreibt Situationen, in denen die Verwendung einer Version von groovy höher als 2.3 Java 1.7 Minimum erfordern könnte. Dies hat keine Auswirkungen auf Ihre Laufzeitanforderungen von Java1.6, könnte jedoch die Kompatibilität Ihres Quellcodes zur Build-Zeit beeinträchtigen. Wenn Sie nur Groovy für Spock verwenden, sollten Sie Groovy 2.2 und Spock 1.0-groovy-2.0 verwenden können. Denkanstoß. Wenn all das mit dir gelenkt wird, denkst du, dass du meine Antwort akzeptierst? Vielen Dank, viel Spaß beim Testen. – alexanderific