2015-05-29 12 views
8

Ho diversi progetti e ho creato diversi jdks (IBM, SUN) e versioni (1.6, 7.1, 8.1).Come creare più progetti con gradle con più versioni jdk?

Nel mio script gradle di ogni progetto ho definito sourceCompatibility e targetCompatibility. Come posso definire ogni specifico progetto org.gradle.java.home?

Se si definisce IBM jdk 6 come org.gradle.java.home nel progetto principale gradle.properties, la creazione di altri progetti non verrà completata.

Ho il file gradle.properties solo progetto gradle principale.

Non voglio utilizzare la variabile del percorso di classe JAVA_HOME per eseguire i miei script gradle. Sto usando gradle 2.3.

Si prega di dare qualche consiglio per risolvere questo problema?

+0

Usa la condizione if else per cambiare la versione di java in base al progetto, ad esempio se hai Project A, B & C in build xml definisci java home path come null e base sul progetto che cambierai java home. tu per risolvere il tuo problema. – stacktome

+0

@stacktome sto usando gradle. d? puoi dare qualche esempio? – user3496599

+1

L'unica scommessa è modificare l'attività 'JavaCompile'. Nel 2.3 devi guardare il poco documentato 'JavaToolChain': https://docs.gradle.org/2.3/dsl/org.gradle.api.tasks.compile.JavaCompile.html#org.gradle.api.tasks. compile.JavaCompile: toolChain e https://docs.gradle.org/2.3/javadoc/org/gradle/jvm/toolchain/JavaToolChain.html Ma la tool chain è stata sostituita dal risolutore strumento ancora più scarsamente documentato dalla 2.4: https : //docs.gradle.org/2.4/dsl/org.gradle.api.tasks.compile.JavaCompile.html#org.gradle.api.tasks.compile.JavaCompile: toolResolver –

risposta

0

Io non sono un maestro Gradle o un esperto, ma,

in realtà si dovrebbe considerare due cose su Gradle:

Se si desidera utilizzare gradle.properties per compilare i vostri progetti contro la specifica JVM, si dovrebbe sanno,

" ... la configurazione è applicata nel seguente ordine (se l'opzione è configurato in più posizioni l'ultimo vince):

da gradle.properties in dir costruzione progetto.
da gradle.properties in gradle user home.
dalle proprietà di sistema, ad es. quando -Dsome.property è impostato sulla riga di comando."

in https://docs.gradle.org/current/userguide/userguide_single.html#build_environment

In secondo luogo, se si desidera configurare i compilatori al volo, questo potrebbe aiutare,

apply plugin: "java" 
    sourceSets.main.java.srcDirs = ["MyProject/src"] 
    dependencies { 
     compile fileTree(dir: "MyProject/lib/jar") 
    } 
    tasks.withType(JavaCompile) { 
     options.fork = true 
     options.forkOptions.executable = "path/to/javac" 
    } 
Problemi correlati