Ich kann nicht herausfinden, ob das funktioniert.
Szenario:
- Ich habe eine Anwendung mit Gradle erstellt
- Die Anwendung verwendet JavaFX
Was ich möchte
- Verwenden Sie eine Variable (definiert pro Entwicklercomputer), die auf eine Installation eines JDK verweist, das zum Erstellen der gesamten Anwendung / tests / ... verwendet wird.
Ich dachte darüber nach, die gradle.properties
Datei zu haben und die Variable zu definieren. Etwas wie
JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>
Was ich nicht will
- 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
- Überschreiben der JAVA_HOME-Variablen nur für den Build-Kontext (so etwas wie
use JAVA_HOME=<my special JDK path defined somewhere else defined>
) - an etwas anderes habe ich nicht gedacht
Frage:
- Wie kann eine Variable (wie auch immer als Variable in der
gradle.properties
Systemumgebungsvariablen definiert, ...) mit dem Erstellungsprozess verbunden werden?
Ich habe mehr als ein JDK7 zur Verfügung und muss auf eine spezielle Version verweisen (minimale JDK_u-Version).
Jede Antwort wird geschätzt und ich bin dankbar für jeden Hinweis auf die richtige Richtung.
java
gradle
build.gradle
schikanieren
quelle
quelle
org.gradle.java.home
in dergradle.properties
Datei einzustellen? Linkorg.gradle.java.home
Einstellung anscheinend nur für Gradle-Daemons. Versuchen Sie auf jeden Fall, fork auf true und forkOptions.executable für das JDK zu setzen, das Sie verwenden möchten: linkAntworten:
Zwei Wege
gradle.properties
im.gradle
Verzeichnis IhresHOME_DIRECTORY
Setsorg.gradle.java.home=/path_to_jdk_directory
oder:
In deinem
build.gradle
quelle
gradle.properties
kann auch auf Projektebene definiert werden, siehe gradle.org/docs/current/userguide/build_environment.html./gradlew -Dorg.gradle.java.home=/path_to_jdk_directory
. Gut, wenn Sie nicht berühren wollengradle.properties
.Wenn Sie JDK_PATH in gradle.properties hinzufügen, hängt Ihr Build von diesem bestimmten Pfad ab. Führen Sie stattdessen die Gradle-Task mit dem folgenden Befehlszeilenparameter aus
Auf diese Weise ist Ihr Build nicht von einem konkreten Pfad abhängig.
quelle
/usr/lib/java/jdk/home
, der auf die aktuell installierte Version verweist . Wenn Sie eine bestimmte Version (z. B. u51) möchten, müssen Sie natürlich den Pfad genau angeben. Außerdem scheinen einige Tools, die gradle starten möchten, das JDK nicht in der Umgebung festzulegen, in der sie gradle geben. Und ich jedenfalls habe das JDK nie als das aktuelle JAVA_HOME festgelegt, es sei denn, es ist eine Entwicklungssitzung.PROGRA~1
(Großbuchstaben) geändert oder was auch immer DIR / X Ihnen sonst sagt."... gradle itself (either standalone distribution or wrapper) uses JDK from JAVA_HOME environment variable or (if it is not set) from PATH".
Ich habe JAVA_HOME vor dem Gradlew-Aufruf angegeben, um dies zu beheben. (dhenv JAVA_HOME=/path/to/java gradlew war --stacktrace
)Für Leute, die hier landen, wenn sie nach dem Gradle-Äquivalent der Maven-Eigenschaft
maven.compiler.source
(oder<source>1.8</source>
) suchen :In build.gradle können Sie dies mit erreichen
Siehe hierzu die Gradle-Dokumentation .
quelle
Wenn Sie den Gradle-Wrapper ausführen, können Sie den Befehl mit dem folgenden JDK-Pfad ausführen
./gradlew -Dorg.gradle.java.home=/jdk_path_directory
quelle
Wenn Sie Linux und Gradle Wrapper verwenden, können Sie die folgende Lösung verwenden.
Pfad zur Datei local.properties hinzufügen:
Fügen Sie Ihrer Gradlew-Skriptdatei Folgendes hinzu:
In dieser Lösung kann jeder Entwickler seinen eigenen JDK-Pfad festlegen. Die Datei
local.properties
sollte nicht im Versionskontrollsystem enthalten sein.quelle
Ich habe diese Zeile in meine GRADLE_HOME / bin / gradle-Datei eingefügt -
export JAVA_HOME=/path/to/java/version
quelle
Es gibt noch eine weitere Option. In Ihren Gradle-Aufgaben können Sie den gewünschten JDK-Pfad festlegen. (Ich weiß, dass dies eine Weile her ist, seit die Frage gestellt wurde. Diese Antwort kann jemandem helfen.)
Klicken Sie mit der rechten Maustaste auf die Bereitstellung oder eine andere Aufgabe und wählen Sie "Gradle Run-Konfiguration öffnen ...".
Navigieren Sie dann zu "Java Home" und fügen Sie den gewünschten Java-Pfad ein.
Bitte beachten Sie, dass bin von der Gradle-Aufgabe selbst hinzugefügt wird. Fügen Sie also nicht den "bin" zum Pfad hinzu.
quelle
Es gibt ein Gradle-Plugin, das ein JDK automatisch herunterlädt / bootet:
https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap
Noch keine IDE-Integration und unter Windows ist eine anständige Shell erforderlich.
quelle
Führen Sie für Windows die Gradle-Task mit dem Pfadparameter jdk 11 in Anführungszeichen aus
quelle
Wie in Gradle (Eclipse Plugin) zu sehen
http://www.gradle.org/get-started
Wenn Sie dieses Eclipse-Plugin oder Enide Studio 2014 verwenden , ist die Alternative JAVA_HOME (in den Einstellungen festgelegt) in Version 0.15 verfügbar (siehe http://www.nodeclipse.org/history)
quelle
Ich benutze Gradle 4.2. Das Standard-JDK ist Java 9. Am frühen Tag von Java 9 wird Gradle 4.2 auf JDK 8 korrekt ausgeführt (nicht auf JDK 9).
Ich habe JDK wie folgt manuell in der Datei eingestellt
%GRADLE_HOME%\bin\gradle.bat
:quelle
Wenn Sie JDK 9+ verwenden, können Sie dies tun:
Sie können auch die folgenden verwandten Probleme sehen:
-release
Compiler-Argument hinzuquelle
Android Studio
Datei> Projektstruktur> SDK-Speicherort> JDK-Speicherort>
GL
Installieren Sie JDK
quelle
Wenn Sie Kotlin DSL verwenden,
build.gradle.kts
fügen Sie hinzu:Natürlich gehe ich davon aus, dass Sie ein Windows-Betriebssystem haben und der
javac
Compiler im Pfad istC:\bin\jdk-13.0.1\bin\javac
. Für Linux wird das Betriebssystem ähnlich sein.quelle
Wenn Sie es nur einmal festlegen möchten, um einen bestimmten Befehl auszuführen:
quelle