Wie definiere ich Gradles Zuhause in IDEA?


390

Ich versuche, ein Gradle-Projekt in IntelliJ zu importieren. Wenn ich zum Gradle HomeTextfeld komme , wird es weder automatisch ausgefüllt, noch wird der Pfad des Gradle HomeErgebnisses an einem gültigen Speicherort eingegeben. Ich habe die GRADLE_USER_HOMEUmgebungsvariable festgelegt (auf das, was ich denke) !) den richtigen Pfad, und ich konnte das gleiche Projekt erfolgreich in Eclipse importieren. Irgendwelche Vorschläge?


Ja, die Diskussion auf der JetBrains-Website scheint darauf hinzudeuten, dass es sich um ein Problem mit Symlinks handelt - siehe Antwort von Denis.Zhdanov hier: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-

1
Gute Frage. Möchten Sie eine gültige Antwort dafür auswählen? Gehen Sie nicht nach den Punkten - ich würde @ trenton's vorschlagen. Vielleicht möchten Sie auch das Betriebssystem erwähnen, um das es in der Frage ging.
Akauppi

1
Wenn Sie "Standard-Gradle-Wrapper verwenden (empfohlen)" auswählen, müssen Sie Gradle Home nicht festlegen. Leider wird das Eingabefeld dafür nicht ausgegraut - sie zeigen lediglich an, dass es durch den Cursortyp deaktiviert ist, den Sie haben, wenn Sie mit der Maus darüber fahren.
Andrew Grimm

Antworten:


479

Sie können ein einfaches Gradle-Skript schreiben , um Ihr GRADLE_HOMEVerzeichnis zu drucken .

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

und nenne es build.gradle.

Führen Sie es dann aus mit:

gradle getHomeDir

Wenn Sie mit Homebrew installiert haben, verwenden Sie brew info gradle, um den Basispfad (dh /usr/local/Cellar/gradle/1.10/) zu finden, und hängen Sie ihn einfach an libexec.

Dieselbe Aufgabe in Kotlin, falls Sie Folgendes verwenden build.gradle.kts:

tasks.register("getHomeDir") {
    println("Gradle home dir: ${gradle.gradleHomeDir}")
}

10
Für diejenigen unter Linux Mint / Ubuntu ist dann /usr/share/gradledie Ausgabe dieses Gradle-Skripts.
Arthur

3
@Steve Gerne helfen. Heute Abend war ich selbst ein Nutznießer. twitter.com/TrentonL/status/729546995686248448
Trenton

3
Das hat bei mir funktioniert, aber es ist so dumm. Ich habe Gradles SDK Manager verwendet, um Gradle zu installieren. Warum kann IntelliJ das nicht nutzen?
AutonomousApps

Auf Fedora 25 ist das auch / usr / share / gradle.
Uri Simchoni

2
Für Arch Linux ist es:/usr/share/java/gradle
SirWojtek

273

Auf einem Mac über Homebrew installiert, der Pfad

/usr/local/opt/gradle/libexec

ist vorzuziehen

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

da erstere Versions-Upgrades überleben werden.


Dies gilt auch für Android Studio (jedenfalls ab AS 1.3).
James

Schön, dass ich dieses Biest benutzt habe, um mein GRADLE_HOME zu setzen (um Probleme beim Upgrade von Gradle mit Brew zu vermeiden). export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` Wenn jemand es vereinfachen kann, wäre das auch praktisch :)
mlo55

2
@ mlo55 viel einfacher zu bedienenexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere

@ mlo55 warum hast du das in Python gemacht, anstatt nur which gradledie Shell aufzurufen ?
Mike Young

@ MikeYoung, ich hatte zu diesem Zeitpunkt noch keinen Realpath installiert. nb: Ich benutze jetzt export GRADLE_HOME="$(brew --prefix gradle)/libexec/"wie von @delitescene empfohlen. Vergleiche ls "$(brew --prefix gradle)/libexec/"mit ls "$(which gradle)/libexec/"on osx, wenn du brau verwendest.
mlo55

93

Wenn Sie gradle mit homebrew installiert haben, lautet der Pfad:

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

Wobei XX die Version von gradle ist (derzeit 2.1)


46

Wenn Sie IntelliJ verwenden, gehen Sie einfach wie folgt vor.

  1. Schließen Sie das Projekt
  2. (erneut) Öffnen Sie das Projekt
  3. Rechts unten wird die Meldung "Gradle-Projekt importieren" angezeigt. klicken.
  4. Wählen Sie "Standard-Gradle-Wrapper verwenden". nicht "Lokale Gradle-Verteilung verwenden"

Geben Sie hier die Bildbeschreibung ein

Das ist alles.


Wenn Sie "Standard-Gradle-Wrapper verwenden" auswählen, ist es nicht erforderlich, Gradle nach Hause zu liefern?
Andrew Grimm

Antwort: Ja. Schuld daran ist schlechtes UX, das ich vorher nicht bemerkt habe.
Andrew Grimm

1
"Use gradle 'wrapper' task configuration"arbeitete für mich - idk was es bedeutet gedacht
scottysseus

1
Wenn Sie möchten, dass IDEA Ihre Gradle-Version für Sie aus Ihrem eigentlichen Build-Skript definiert, wählen Sie "Gradle-Wrapper-Task-Konfiguration verwenden"
Cloudish123

@ AndrewGrimm In meinem Fall ist dieses Optionsfeld deaktiviert. Also kann ich es nicht auswählen. Irgendwelche Ideen?
Mikheil Zhghenti

42

Dies hat mir geholfen, das Problem zu lösen, dass Gradle beim Importieren eines Gradle-Projekts nicht für die IDEA eingerichtet wurde.

DREI OPTIONEN - (A) Standard-Wrapper (B) "Gradle 'Wrapper'-Task-Konfiguration" ODER (C) "Lokale Gradle-Verteilung", definiert durch Jetbrains: https://www.jetbrains.com/help/idea/gradle-settings .html

A. Standardverpackung (empfohlen)

Wenn Sie in der Lage sind, wählen Sie diese empfohlene Option. Wenn es abgeblendet ist, lesen Sie Option C, die dann Ihre Standardeinstellung für alle nachfolgenden Projekte festlegen sollte.

B. Gradle 'Wrapper'-Aufgabenkonfiguration

Wenn Sie möchten, dass IDEA Ihre Gradle-Version für Sie in Ihrem Build-Skript definiert

  1. Stellen Sie diese Option ein, wenn Sie Ihre Gradle-Build-Versionen als Aufgabe innerhalb Ihres tatsächlichen Gradle-Builds definieren.

Beispiel unten von jetbrains: https://www.jetbrains.com/help/idea/gradle-settings.html

Geben Sie hier die Bildbeschreibung ein

(nützlich, wenn Sie Gradle-Builds nicht zwischen Projekten teilen möchten)

C. Lokale Gradle-Verteilung

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

Dies liegt daran, dass "libexec von anderen Daemons und Systemdienstprogrammen verwendet werden soll, die von anderen Programmen ausgeführt werden" (dh IDEA). Weitere Informationen finden Sie unter /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.

Geben Sie hier die Bildbeschreibung ein

  1. IDEA sollte es Ihnen jetzt erlaubt haben, OK zu drücken Geben Sie hier die Bildbeschreibung ein

Für mich, egal was ich tue, bekomme ich: Ursache: Ich kann keinen gültigen Zertifizierungspfad zum angeforderten Ziel finden
slashdottir

@slashdottir Möglicherweise hat dies etwas mit dem von Ihnen verwendeten Netzwerk zu tun (wenn Sie bei der Arbeit oder an der Universität sind), oder Sie müssen IDEA schließen, den Computer neu starten und aus einem neuen Projekt neu erstellen. Siehe stackoverflow.com/questions/42415666/… , obwohl es sich um Android-Studio handelt, kann es dennoch nützlich sein. Lassen Sie mich wissen, ob dies hilft.
Cloudish123

1
Schließlich wechselte ich gerade zum Gebäude Gradle von Comand-Line - hat auf diese Weise gut geklappt
Slashdottir

9

Dies ist nur eine Anweisung für MAC. Ich hatte das gleiche Problem. Ich habe es durch Konfigurieren $GRADLE_HOMEin gelöst .bash_profile. So geht's:

  • Öffnen .bash_profile(normalerweise befindet es sich im Home-Verzeichnis des Benutzers).
  • Fügen Sie die folgenden Zeilen hinzu, um die $PATHVariable zu aktualisieren : export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • Speichern Sie es.
  • Übernehmen Sie Ihre Änderungen, indem Sie ausführen source .bash_profile

Ich habe meinen eigenen Artikel mit Anweisungen für den Fall geschrieben, dass jemand auf dasselbe Problem stößt.


Danke für deine Antwort. Für die Version gradle4.7: export GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec export PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker

1
@ PiashSarker, ich kann sehen, dass dies /usr/local/opt/gradle/libexecein Symlink zu ist /usr/local/Cellar/gradle/4.7/libexec . Wenn die Gradle-Version aktualisiert wird, wird auch Symlink automatisch aktualisiert. Davon abgesehen ist es immer noch sicherer zu bedienen /usr/local/opt/gradle/libexec. Bitte korrigieren Sie mich, wenn ich falsch liege.
Skryvets

9

C: \ Benutzer \ <_Benutzername> \ .gradle \ wrapper \ dists \ gradle- <_version> -all \ <_number_random_maybe> \ gradle- <_version>

\ Android Studio \ Gradle hat bei mir nicht funktioniert.

Und "Standard-Gradle-Wrapper" wurde beim Importieren (Klonen) des Projekts aus Bitbucket nicht konfiguriert

Wenn es Probleme verursacht, den Pfad herauszufinden, ist hier mein Pfad:

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


Es ist nicht sehr hilfreich, einen Pfad zu veröffentlichen, der nur mit Ihrem Benutzernamen und bestimmten Versionsnummern funktioniert. Auch nicht hilfreich, keine Lösung vorzuschlagen.
MarkHu

6

Auf einem Mac sollte es idealerweise sein bei: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(Ersetzen Sie die Versionszeichenfolge durch die neueste.)


7
@RuchirBaronia Nur wenn Sie Android Studio verwenden
hitch.united

Das ist überhaupt keine Antwort. Was es "idealerweise" sein sollte, muss nicht beantwortet werden.
Wyde19

Offensichtlich wird die Version von Gradle im Laufe der Jahre weiter steigen. Versuchen Sie dies, um zu sehen, was Sie aktuell haben:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu

3

AFAIK es ist GRADLE_HOME, nicht GRADLE_USER_HOME (siehe Gradle-Installation http://www.gradle.org/installation ).

Andererseits habe ich in Idea 13 Cardea ein bisschen mit Gradle-Unterstützung gespielt und ich denke, das Gradle-Zuhause wird von Idea nicht automatisch entdeckt. Wenn ja, können Sie ein Problem in youtrack einreichen.

Wenn Sie Gradle 1.6+ verwenden, können Sie auch die Graldle-Unterstützung zum Festlegen von Build und Wrapper verwenden. Ich denke, Idee entdeckt automatisch das Wrapper-basierte Gradle-Projekt.

$ gradle setupBuild - Typ Java-Bibliothek

$ gradle wrapper

Hinweis: Unterstützte Bibliothekstypen: Basic, Maven, Java

Grüße


3

Wenn Sie MacPorts verwenden, lautet der Pfad

/opt/local/share/java/gradle

2

Ich musste das Project SDK einrichten, bevor ich den Gradle-Pfad auswählen konnte. Nachdem dies richtig eingestellt war, musste ich im Dialogfeld "Projekt aus Gradle importieren" die Option "Standard-Gradle-Wrapper verwenden (empfohlen)" auswählen.

Funktioniert immer noch, wenn ich Gradle mit Brew entferne:

$ brew remove gradle

Geben Sie hier die Bildbeschreibung ein



1

Ich hatte einige seltsame Fehler, bei denen meine Klasse nicht gefunden werden konnte. Ich musste mit der rechten Maustaste auf meinen src-Ordner klicken (war rot), um "Verzeichnis erstellen als" -> Quellordner-Stammverzeichnis zu erstellen


0

Klicken Sie auf Neu -> Projekt aus vorhandenen Quellen -> Gradle-Projekt importieren ...

Dann erkannte Idea Gradle automatisch.


0

Ich konnte meine Gradle JVM-Auswahl erst akzeptieren, nachdem ich ein defektes JDK gelöscht hatte

Das folgende Fenster befindet sich unter Datei -> Andere Einstellungen -> Struktur für neue Projekte ...

Gradle JVM dh JDK-Heimatpfad

Ich hatte hier einen roten 1,8 JDK SDK-Eintrag, nachdem ich den unten stehenden Gradle JVM-Fehler gelöscht hatte und mit dem nächsten Schritt fortfahren konnte

Gradle JVM-Fehler


-1

Wenn Sie einen Mac verwenden, sollte dies höchstwahrscheinlich Ihr Zuhause sein /usr/local/gradle-2.0 .

Bevorzugen Sie IDEA, suchen Sie nach Gradle und setzen Sie Gradle Home wie oben angegeben. Es sollte funktionieren

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.