Comment définir la maison de Gradle dans IDEA?

390

J'essaie d'importer un projet Gradle dans IntelliJ, et lorsque j'arrive dans la Gradle Homezone de texte, il n'est pas automatiquement rempli, ni ne saisit le chemin du Gradle Homerésultat dans un emplacement valide - J'ai la GRADLE_USER_HOMEvariable d'environnement définie (pour ce que je pense être !) le chemin correct, et j'ai pu importer avec succès ce même projet dans Eclipse. Aucune suggestion?

user2699970
la source
Oui, la discussion sur le site JetBrains semble indiquer que c'est un problème avec les liens symboliques - voir la réponse de Denis.Zhdanov ici: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-cain
1
Bonne question. Souhaitez-vous sélectionner une réponse valide pour cela. Ne vous fiez pas aux points - je suggérerais @ trenton's. Vous voudrez peut-être également mentionner l'OS dont il s'agissait dans la question.
akauppi
1
Si vous choisissez "Utiliser le wrapper de gradle par défaut (recommandé)", vous n'avez pas besoin de définir Gradle Home. Malheureusement, ils ne grisent pas la zone de saisie pour cela - ils indiquent simplement qu'il est désactivé par le type de curseur que vous avez lorsque vous passez la souris dessus.
Andrew Grimm

Réponses:

479

Vous pouvez écrire un simple script gradle pour imprimer votre GRADLE_HOMErépertoire.

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

et nommez-le build.gradle.

Exécutez-le ensuite avec:

gradle getHomeDir

Si vous avez installé avec homebrew, utilisez brew info gradlepour trouver le chemin de base (ie /usr/local/Cellar/gradle/1.10/), et ajoutez-le libexec.

La même tâche dans Kotlin si vous utilisez build.gradle.kts:

tasks.register("getHomeDir") {
    println("Gradle home dir: ${gradle.gradleHomeDir}")
}
Frontières de la santé
la source
10
Pour ceux sur Linux Mint / Ubuntu, alors /usr/share/gradleest la sortie de ce script gradle.
Arthur
3
@Steve Heureux de vous aider. Ce soir, j'étais moi-même bénéficiaire. twitter.com/TrentonL/status/729546995686248448
Trenton
3
Cela a fonctionné pour moi, mais c'est tellement stupide. J'ai utilisé le SDK Manager de Gradle pour installer Gradle. Pourquoi IntelliJ ne peut-il pas utiliser cela?
AutonomousApps
Sur Fedora 25, c'est aussi / usr / share / gradle.
Uri Simchoni
2
Pour Arch Linux, c'est:/usr/share/java/gradle
SirWojtek
273

Installé sur un Mac via Homebrew, le chemin

/usr/local/opt/gradle/libexec

est préférable à

/usr/local/Cellar/gradle/X.X/libexec

puisque le premier survivra aux mises à jour de version.

Trenton
la source
C'est également le cas pour Android Studio (à partir d'AS 1.3 en tout cas).
James
Sympa, j'ai fini par utiliser cette bête pour configurer mon GRADLE_HOME (pour éviter les problèmes lors de la mise à niveau de gradle avec brew) export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` Si quelqu'un peut simplifier, ce serait également utile :)
mlo55
2
@ mlo55 beaucoup plus facile à utiliserexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere
@ mlo55 pourquoi avez-vous fait cela en python plutôt que d'appeler simplement which gradledans le shell?
Mike Young
@MikeYoung, je n'avais pas installé realpath à l'époque. nb: J'utilise maintenant export GRADLE_HOME="$(brew --prefix gradle)/libexec/"comme recommandé par @delitescene. Comparez ls "$(brew --prefix gradle)/libexec/"avec ls "$(which gradle)/libexec/"sur osx, si vous utilisez de l'infusion.
mlo55
93

Si vous avez installé gradle avec homebrew, alors le chemin est:

/usr/local/Cellar/gradle/X.X/libexec

Où XX est la version de gradle (actuellement 2.1)

HasanAboShally
la source
46

Si vous utilisez IntelliJ, procédez comme suit.

  1. Fermer le projet
  2. (re) Ouvrir le projet
  3. vous verrez le message "Importer un projet gradle" en bas à droite. Cliquez sur.
  4. sélectionnez "Utiliser le wrapper de gradle par défaut". pas "Utiliser la distribution locale des grades"

entrez la description de l'image ici

C'est tout.

Anderson
la source
Si vous sélectionnez "Utiliser le wrapper Gradle par défaut", n'est-il pas nécessaire de fournir Gradle home?
Andrew Grimm
Réponse: oui. C'est la faute à une mauvaise UX que je n'avais pas remarquée auparavant.
Andrew Grimm
1
"Use gradle 'wrapper' task configuration"travaillé pour moi - idk ce que cela signifie pensé
scottysseus
1
Si vous souhaitez que IDEA définisse pour vous votre version de gradle à partir de votre script de construction, sélectionnez "Utiliser la configuration de tâche" wrapper "de
gradle
@AndrewGrimm Dans mon cas, ce bouton radio est désactivé. Je ne peux donc pas le sélectionner. Des idées?
Mikheil Zhghenti
42

C'est ce qui m'a aidé à résoudre le problème de ne pas avoir de domicile Gradle pour IDEA lors de l'importation d'un projet Gradle.

TROIS OPTIONS - (A) Wrapper par défaut (B) "configuration de tâche" wrapper gradle "OU (C)" distribution de gradle locale "définie par jetbrains: https://www.jetbrains.com/help/idea/gradle-settings .html

A. Wrapper par défaut (recommandé)

Si vous le pouvez, sélectionnez cette option recommandée. S'il est grisé, voir l'option C, qui devrait alors définir votre valeur par défaut pour tous les projets suivants.

Configuration de la tâche «wrapper» Gradle

Si vous souhaitez que IDEA définisse pour vous votre version gradle à partir de votre script de construction

  1. Définissez cette option si vous définissez vos versions de build Gradle en tant que tâche dans votre build Gradle réel.

Exemple ci-dessous de jetbrains: https://www.jetbrains.com/help/idea/gradle-settings.html

entrez la description de l'image ici

(utile si vous ne souhaitez pas partager les versions Gradle entre les projets)

C. Distribution locale de Gradle

1. Run the following command to get gradle location:

   brew info gradle (if gradle was installed with homebrew)


2. You are looking for something like this:

   /usr/local/Cellar/gradle/4.8.1


3. Next, append 'libexec' to the gradle location you just found:

/usr/local/Cellar/gradle/4.8.1/libexec

En effet, "libexec doit être utilisé par d'autres démons et utilitaires système exécutés par d'autres programmes" (c'est-à-dire IDEA). Veuillez consulter /unix/312146/what-is-the-purpose-of-usr-libexec

4. Finally, put that new path in the Gradle home input box if IDEA prompts you.

entrez la description de l'image ici

  1. IDEA aurait maintenant dû vous permettre de cliquer sur OK entrez la description de l'image ici
Cloudish123
la source
Pour moi, peu importe ce que je fais, j'obtiens: Cause: impossible de trouver un chemin de certification valide vers la cible demandée
slashdottir
@slashdottir cela peut avoir quelque chose à voir avec le réseau que vous utilisez (si vous travaillez ou à l'université) ou vous devrez peut-être fermer IDEA, redémarrer la machine et reconstruire à partir d'un nouveau projet. Voir stackoverflow.com/questions/42415666/… , même s'il s'agit d'Android-studio, cela pourrait toujours être utile. Faites-moi savoir si tout cela aide.
Cloudish123
1
Enfin, je viens de passer à la construction gradle de comand-line - ça a bien fonctionné de cette façon - thx
slashdottir
9

Il s'agit d'instructions pour MAC uniquement. J'ai eu le même problème. Je l'ai résolu en configurant $GRADLE_HOMEdans .bash_profile. Voici comment procéder:

  • Ouvert .bash_profile(il se trouve généralement dans le répertoire personnel de l'utilisateur).
  • Ajoutez les lignes suivantes pour mettre à jour la $PATHvariable: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • Sauvegarde le.
  • Appliquez vos modifications en exécutant source .bash_profile

J'ai écrit mon propre article avec des instructions dans un cas où quelqu'un rencontrera le même problème.

skryvets
la source
Merci pour votre réponse. Pour la version gradle4.7: export GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec export PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker
1
@PiashSarker, je peux voir que /usr/local/opt/gradle/libexecc'est un lien symbolique vers /usr/local/Cellar/gradle/4.7/libexec . Si la version gradle sera mise à jour, le lien symbolique sera automatiquement mis à jour également. Cela dit, il est toujours plus sûr à utiliser /usr/local/opt/gradle/libexec. Corrigez-moi si j'ai tort, s'il-vous plait.
skryvets
9

C: \ Users \ <_username> \ .gradle \ wrapper \ dists \ gradle- <_version> -all \ <_number_random_maybe> \ gradle- <_version>

\ Android studio \ gradle n'a pas fonctionné pour moi.

Et "wrapper de gradle par défaut" n'a pas été configuré lors de l'importation (clonage) du projet à partir de bitbucket

Si cela pose problème pour comprendre le chemin, voici mon chemin:

C: \ Users \ prabs \ .gradle \ wrapper \ dists \ gradle-5.4.1-all \ 3221gyojl5jsh0helicew7rwx \ gradle-5.4.1

Prabs
la source
Pas très utile pour publier un chemin qui ne fonctionne qu'avec votre nom d'utilisateur et vos numéros de version particuliers. Aussi pas utile de ne proposer aucune solution.
MarkHu
6

Sur un Mac, il devrait idéalement être à: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(Remplacez la chaîne de version par la dernière)

AnupamChugh
la source
7
@RuchirBaronia Uniquement si vous utilisez Android Studio
hitch.united
Ce n'est pas du tout une réponse. Ce à quoi il devrait être "idéalement" n'est pas ce à quoi il faut répondre.
wyde19
De toute évidence, la version de Gradle continuera d'augmenter au fil des ans. Essayez ceci pour voir ce que vous avez actuellement:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu
3

AFAIK c'est GRADLE_HOME et non GRADLE_USER_HOME (voir installation gradle http://www.gradle.org/installation ).

D'un autre côté, j'ai joué un peu avec le support Gradle dans Idea 13 Cardea et je pense que la maison Gradle n'est pas automatiquement découverte par Idea. Si c'est le cas, vous pouvez déposer un problème dans youtrack.

De plus, si vous utilisez Gradle 1.6+, vous pouvez utiliser la prise en charge de Graldle pour définir la construction et le wrapper. Je pense que l'idée découvre automatiquement le projet Gradle basé sur le wrapper.

$ gradle setupBuild --type java-library

$ emballage gradle

Remarque: types de bibliothèques pris en charge: basique, maven, java

Cordialement

jtonic
la source
3

Si vous utilisez MacPorts, le chemin d'accès est

/opt/local/share/java/gradle
Daniel Scott
la source
2

J'ai dû configurer le SDK du projet avant de sélectionner le chemin Gradle. Une fois que cela a été réglé correctement, j'ai dû choisir "Utiliser le wrapper de gradle par défaut (recommandé) dans la boîte de dialogue" Importer le projet à partir de Gradle ".

Fonctionne toujours si je supprime le gradle à l'aide de l'infusion:

$ brew remove gradle

entrez la description de l'image ici

user674669
la source
2

C'est là que se trouve ma maison de gradle (Arch Linux):

/usr/share/java/gradle/
VBorisoff
la source
1

J'ai eu quelques erreurs bizarres où il ne pouvait pas trouver ma classe, j'ai dû faire un clic droit sur mon dossier src (était rouge) pour "Make Directory as" -> Root Folder Root

Burf2000
la source
0

Cliquez sur Nouveau -> Projet à partir de sources existantes -> Importer un projet Gradle ...

Ensuite, Idea a reconnu automatiquement le gradle.

Martin Pfeffer
la source
0

Je n'ai pas pu accepter ma sélection JVM Gradle jusqu'à ce que j'aie supprimé un JDK cassé

La fenêtre ci-dessous provient de Fichier -> Autres paramètres -> Structure pour les nouveaux projets ...

Gradle JVM ie chemin de la maison JDK

J'ai eu une entrée rouge 1.8 SDK JDK ici, une fois que j'ai supprimé cette erreur JVM Gradle ci-dessous disparu et je pouvais passer à l'étape suivante

Erreur JVM Gradle

Kevin
la source
-1

Si vous utilisez Mac, votre maison Gradle devrait être /usr/local/gradle-2.0par exemple.

De préférence pour IDEA, recherchez Gradle et définissez Gradle comme indiqué ci-dessus. Ça devrait marcher

RAM
la source