Je n'arrive pas à comprendre pour que cela fonctionne.
Scénario:
- J'ai une application construite avec gradle
- L'application utilise JavaFX
Ce que je veux
- Utilisez une variable (définie par machine de développeur) qui pointe vers une installation d'un JDK qui sera utilisé pour construire l'ensemble de l'application / tests / ...
J'ai pensé à avoir le gradle.properties
fichier, à définir la variable. Quelque chose comme
JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>
Ce que je ne veux pas
- pointer
JAVA_HOME
vers le JDK souhaité
Je pourrais vivre avec de nombreuses suggestions:
- une solution qui définit une variable d'environnement système que je peux vérifier dans mon script build.gradle
- une variable définie dans gradle.properties
- remplacer la variable JAVA_HOME uniquement pour le contexte de construction (quelque chose comme
use JAVA_HOME=<my special JDK path defined somewhere else defined>
) - autre chose que je ne pensais pas
Question:
- Comment câbler une variable (quelle que soit sa définition, comme variable dans la
gradle.properties
variable d'environnement système, ...) au processus de construction?
J'ai plus d'un JDK7 disponible et je dois pointer vers une version spéciale (version JDK_u minimum).
Toute réponse est appréciée et je suis reconnaissant pour chaque indice dans la bonne direction.
java
gradle
build.gradle
brute
la source
la source
org.gradle.java.home
legradle.properties
fichier? linkorg.gradle.java.home
paramètre ne s'applique qu'au gradle daemon, apparemment ... En tout cas, essayez de définir fork sur true et forkOptions.executable sur le jdk que vous souhaitez utiliser: linkRéponses:
Deux manières
gradle.properties
le.gradle
répertoire de votreHOME_DIRECTORY
setorg.gradle.java.home=/path_to_jdk_directory
ou:
Dans votre
build.gradle
la source
gradle.properties
peut également être défini au niveau du projet, voir gradle.org/docs/current/userguide/build_environment.html./gradlew -Dorg.gradle.java.home=/path_to_jdk_directory
. Bien si vous ne voulez pas touchergradle.properties
.Si vous ajoutez JDK_PATH dans gradle.properties, votre build dépend de ce chemin particulier. Exécutez plutôt la tâche gradle avec le paramètre de ligne de commande suivant
De cette façon, votre build ne dépend pas d'un chemin concret.
la source
/usr/lib/java/jdk/home
qui pointe vers la version actuelle installée. Bien sûr, lorsque vous voulez une version spécifique (par exemple u51), vous devez être précis sur le chemin. De plus, certains outils qui veulent lancer Gradle ne semblent pas définir le JDK dans l'environnement qu'ils fournissent. Et pour ma part, je n'ai jamais défini le JDK comme JAVA_HOME actuel, sauf s'il s'agit d'une session de développement.PROGRA~1
(toutes majuscules) ou tout ce que DIR / X vous dit."... gradle itself (either standalone distribution or wrapper) uses JDK from JAVA_HOME environment variable or (if it is not set) from PATH".
J'ai spécifié le JAVA_HOME avant l'appel gradlew pour résoudre ce problème. (ie.env JAVA_HOME=/path/to/java gradlew war --stacktrace
)Aux personnes se retrouvant ici lors de la recherche de l'équivalent Gradle de la propriété Maven
maven.compiler.source
(ou<source>1.8</source>
):Dans build.gradle, vous pouvez y parvenir avec
Voir la documentation Gradle à ce sujet .
la source
Si vous exécutez à l'aide du wrapper gradle, vous pouvez exécuter la commande avec le chemin JDK comme suit
./gradlew -Dorg.gradle.java.home=/jdk_path_directory
la source
Si vous utilisez Linux et Gradle Wrapper, vous pouvez utiliser la solution suivante.
Ajoutez le chemin d'accès au fichier local.properties:
Ajoutez à votre fichier de script gradlew:
Dans cette solution, chaque développeur peut définir son propre chemin JDK. Le fichier
local.properties
ne doit pas être inclus dans le système de contrôle de version.la source
J'ai ajouté cette ligne dans mon fichier GRADLE_HOME / bin / gradle -
export JAVA_HOME=/path/to/java/version
la source
Il y a encore une option à suivre. Dans vos tâches gradle, vous pouvez définir le chemin jdk souhaité. (Je sais que cela fait un moment que la question a été publiée. Cette réponse peut aider quelqu'un.)
Faites un clic droit sur le déploiement ou toute autre tâche et sélectionnez "Ouvrir la configuration d'exécution Gradle ..."
Ensuite, accédez à "Java Home" et collez le chemin java souhaité.
Veuillez noter que bin sera ajouté par la tâche gradle elle-même. N'ajoutez donc pas le "bin" au chemin.
la source
il existe un plugin Gradle qui télécharge / amorce automatiquement un JDK:
https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap
Pas encore d'intégration IDE et un shell décent requis sur Windows.
la source
Pour Windows, exécutez la tâche Gradle avec le paramètre de chemin JDK 11 entre guillemets
la source
Comme vu dans Gradle (plugin Eclipse)
http://www.gradle.org/get-started
Si vous utilisez ce plugin Eclipse ou Enide Studio 2014 , l'alternative JAVA_HOME à utiliser (définie dans les préférences) sera en version 0.15, voir http://www.nodeclipse.org/history
la source
J'utilise Gradle 4.2. Le JDK par défaut est Java 9. Au début de Java 9, Gradle 4.2 fonctionne correctement sur JDK 8 (pas JDK 9).
J'ai défini JDK manuellement comme ceci, dans le fichier
%GRADLE_HOME%\bin\gradle.bat
:la source
Si vous utilisez JDK 9+, vous pouvez le faire:
Vous pouvez également voir les problèmes connexes suivants:
-release
argument du compilateurla source
Android Studio
Fichier> Structure du projet> Emplacement du SDK> Emplacement du JDK>
GL
Installer JDK
la source
Si vous utilisez Kotlin DSL, alors en
build.gradle.kts
plus:Bien sûr, je suppose que vous avez le système d'exploitation Windows et que le
javac
compilateur est dans le cheminC:\bin\jdk-13.0.1\bin\javac
. Pour Linux, le système d'exploitation sera similaire.la source
Si vous souhaitez simplement le définir une fois pour exécuter une commande spécifique:
la source