523 Stimmen

Wie sage ich Gradle, eine bestimmte JDK-Version zu verwenden?

Ich kann nicht herausfinden, wie ich das zum Laufen bringe.

Szenario:

  • Ich habe eine Anwendung mit Gradle erstellt
  • Die Anwendung verwendet JavaFX

Was ich möchte

  • Verwenden Sie eine Variable (die pro Entwickler-Maschine definiert ist), die auf eine Installation eines JDK zeigt, das für den Bau der gesamten Anwendung / Tests / ... verwendet wird

Ich habe daran gedacht, die gradle.properties-Datei zu haben, die die Variable definiert. Etwas in der Art von

JAVA_HOME_FOR_MY_PROJECT=

Was ich nicht möchte

  • Zeigen Sie JAVA_HOME auf das gewünschte JDK

Ich könnte mit vielen Vorschlägen leben:

  • eine Lösung, die eine Systemumgebungsvariable definiert, die ich in meinem build.gradle-Skript überprüfen kann
  • eine in gradle.properties definierte Variable
  • das Überschreiben der JAVA_HOME-Variable nur für den Build-Kontext (etwas wie use JAVA_HOME=)
  • etwas, an das ich nicht gedacht habe

Frage:

  • Wie verknüpfe ich eine Variable (wie auch immer definiert, als Variable in der gradle.properties-Datei, Systemumgebungsvariable, ...) mit dem Bauprozess?

Ich habe mehr als ein JDK7 verfügbar und muss auf eine spezielle Version (mindestens JDK_u-Version) verweisen.

Jede Antwort wird geschätzt und ich bin dankbar für jeden Hinweis in die richtige Richtung.

30voto

Vittal Pai Punkte 3325

Wenn Sie das Gradle-Wrapper ausführen, können Sie den Befehl mit dem JDK-Pfad wie folgt ausführen

./gradlew -Dorg.gradle.java.home=/jdk_pfad_verzeichnis

17voto

Yekta Sarıoğlu Punkte 1205

Sie könnten ganz einfach Ihre gewünschte Java-Version angeben, indem Sie sie in der Projekt-Ebene in der Datei gradle.properties festlegen. Dies würde sich auf das aktuelle Projekt auswirken, anstatt den Sprachlevel für jedes Projekt im gesamten System zu ändern.

org.gradle.java.home=

10voto

sylwano Punkte 437

Wenn Sie Linux verwenden und den Gradle-Wrapper nutzen, können Sie folgende Lösung verwenden.

Fügen Sie den Pfad zur local.properties-Datei hinzu:

javaHome=

Fügen Sie Ihrem gradlew-Skriptfile hinzu:

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source $DIR/local.properties 2>/dev/null

if ! [ -z "$javaHome" ]
then
  JAVA_HOME=$javaHome
fi

In dieser Lösung kann jeder Entwickler seinen eigenen JDK-Pfad festlegen. Die Datei local.properties sollte nicht im Versionskontrollsystem enthalten sein.

10voto

Rosberg Linhares Punkte 3061

Wenn Sie JDK 9+ verwenden, können Sie Folgendes tun:

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

tasks.withType {
    options.compilerArgs.addAll(arrayOf("--release", "8"))
}

Sie können auch die folgenden verwandten Probleme sehen:

8voto

Kiran Punkte 1039

Es gibt noch eine weitere Option zu befolgen. In Ihren in Eclipse verfügbaren Gradle-Aufgaben können Sie Ihren gewünschten JDK-Pfad festlegen. (Ich weiß, dass es eine Weile her ist, seit die Frage gestellt wurde. Diese Antwort kann jemandem helfen.)

Klicken Sie mit der rechten Maustaste auf das Bereitstellen- oder ein beliebiges anderes Aufgabe und wählen Sie "Gradle-Ausführungskonfiguration öffnen..."

Bildbeschreibung eingeben

Gehen Sie dann zu "Java-Home" und fügen Sie Ihren gewünschten Java-Pfad ein.

Bildbeschreibung eingeben

Bitte beachten Sie, dass "bin" von der Gradle-Aufgabe selbst hinzugefügt wird. Fügen Sie also nicht "bin" zum Pfad hinzu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X