Bagaimana cara mendefinisikan rumah Gradle di IDEA?

390

Saya mencoba untuk mengimpor proyek Gradle ke IntelliJ, dan ketika saya sampai ke Gradle Homekotak teks, itu tidak secara otomatis terisi, juga tidak akan mengetikkan lintasan Gradle Homehasil di lokasi yang valid - Saya memiliki GRADLE_USER_HOMEset variabel lingkungan (untuk apa yang saya pikir adalah !) jalan yang benar, dan saya telah berhasil mengimpor proyek yang sama ini ke Eclipse. Ada saran?

pengguna2699970
sumber
Ya, diskusi di situs JetBrains tampaknya mengindikasikan masalah dengan symlink - lihat balasan oleh Denis.Zhdanov di sini: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-cain
1
Pertanyaan bagus. Apakah Anda ingin memilih jawaban yang valid untuk ini. Jangan ikuti poinnya - saya sarankan @ trenton's. Anda mungkin juga ingin menyebutkan OS tentang pertanyaan ini.
akauppi
1
Jika Anda memilih "Gunakan pembungkus gradle default (disarankan)", Anda tidak perlu mengatur Gradle Home. Sayangnya, mereka tidak membuat kotak input abu-abu - mereka hanya menunjukkan bahwa itu dinonaktifkan oleh jenis kursor yang Anda miliki ketika Anda mengarahkan mouse ke sana.
Andrew Grimm

Jawaban:

479

Anda dapat menulis skrip gradle sederhana untuk mencetak GRADLE_HOMEdirektori Anda .

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

dan beri nama build.gradle.

Kemudian jalankan dengan:

gradle getHomeDir

Jika Anda menginstal dengan homebrew, gunakan brew info gradleuntuk menemukan path dasar (yaitu /usr/local/Cellar/gradle/1.10/), dan tambahkan saja libexec.

Tugas yang sama di Kotlin jika Anda menggunakan build.gradle.kts:

tasks.register("getHomeDir") {
    println("Gradle home dir: ${gradle.gradleHomeDir}")
}
Perbatasan Heath
sumber
10
Bagi yang menggunakan Linux Mint / Ubuntu, maka /usr/share/gradleini adalah output dari skrip gradle ini.
Arthur
3
@Steve Senang membantu. Malam ini saya sendiri adalah ahli waris. twitter.com/TrentonL/status/729546995686248448
Trenton
3
Ini bekerja untuk saya, tapi itu sangat bodoh. Saya menggunakan Manajer SDK Gradle untuk menginstal Gradle. Mengapa IntelliJ tidak dapat menggunakannya?
AutonomousApps
Pada Fedora 25 itu juga / usr / share / gradle.
Uri Simchoni
2
Untuk Arch Linux, itu adalah:/usr/share/java/gradle
SirWojtek
273

Diinstal pada Mac melalui Homebrew, path

/usr/local/opt/gradle/libexec

lebih disukai daripada

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

karena yang pertama akan bertahan versi upgrade.

Trenton
sumber
Ini juga merupakan kasus untuk Android Studio (pada AS 1.3, anyway).
James
Bagus, saya akhirnya menggunakan binatang ini untuk mengatur GRADLE_HOME saya (untuk mencegah masalah ketika memutakhirkan gradle dengan minuman) export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` Jika ada yang bisa menyederhanakan, itu akan berguna juga :)
mlo55
2
@ mlo55 lebih mudah digunakanexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere
@ mlo55 mengapa Anda melakukannya dengan python daripada hanya memanggil which gradleshell?
Mike Young
@MikeYoung, saya tidak menginstal realpath saat itu. nb: Sekarang saya menggunakan export GRADLE_HOME="$(brew --prefix gradle)/libexec/"seperti yang direkomendasikan oleh @delitescene. Bandingkan ls "$(brew --prefix gradle)/libexec/"dengan ls "$(which gradle)/libexec/"di osx, jika Anda menggunakan minuman.
mlo55
93

Jika Anda menginstal gradle dengan homebrew, maka pathnya adalah:

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

Di mana XX adalah versi gradle (saat ini 2.1)

HasanboShally
sumber
46

Jika Anda menggunakan IntelliJ, lakukan saja yang berikut ini.

  1. Tutup proyek
  2. (re) Buka proyek
  3. Anda akan melihat pesan "Import gradle project" di kanan bawah. klik.
  4. pilih "Gunakan pembungkus gradle default". tidak "Gunakan distribusi gradle lokal"

masukkan deskripsi gambar di sini

Itu saja.

Anderson
sumber
Jika Anda memilih "Gunakan pembungkus gradle default", bukankah tidak perlu memasok rumah Gradle?
Andrew Grimm
Jawab: Ya. Menyalahkan UX buruk yang tidak saya perhatikan sebelumnya.
Andrew Grimm
1
"Use gradle 'wrapper' task configuration"bekerja untuk saya - idk apa artinya berpikir
scottysseus
1
Jika Anda ingin IDEA menentukan versi gradle Anda untuk Anda dari skrip build aktual Anda, maka Anda pilih "Gunakan konfigurasi tugas grader 'wrapper'"
Cloudish123
@AndrewGrimm Dalam kasus saya, tombol radio ini dinonaktifkan. Jadi saya tidak bisa memilihnya. Ada ide?
Mikheil Zhghenti
42

Inilah yang membantu saya memecahkan masalah tidak memiliki Gradle home set untuk IDEA saat mengimpor proyek Gradle.

TIGA PILIHAN - (A) Default Wrapper (B) "konfigurasi tugas grader 'wrapper'" ATAU (C) "distribusi gradle lokal" ditentukan oleh jetbrains: https://www.jetbrains.com/help/idea/gradle-settings .html

A. Wrapper Default (disarankan)

Jika Anda dapat, pilih opsi yang direkomendasikan ini. Jika berwarna abu-abu, lihat opsi C, yang kemudian harus menetapkan default Anda untuk semua proyek berikutnya.

B. Konfigurasi Tugas 'Pembungkus' Gradle

Jika Anda ingin IDEA menentukan versi gradle Anda untuk Anda dari skrip build Anda

  1. Tetapkan opsi ini jika Anda mendefinisikan versi gradle build Anda sebagai tugas dalam build gradle aktual Anda.

Contoh di bawah ini dari jetbrains: https://www.jetbrains.com/help/idea/gradle-settings.html

masukkan deskripsi gambar di sini

(berguna jika Anda tidak ingin berbagi build gradle antar proyek)

C. Distribusi Gradle Lokal

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

Ini karena "libexec akan digunakan oleh daemon lain dan utilitas sistem yang dijalankan oleh program lain" (yaitu IDEA). Silakan lihat /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.

masukkan deskripsi gambar di sini

  1. Seharusnya IDEA sekarang memungkinkan Anda untuk menekan OK masukkan deskripsi gambar di sini
Cloudish123
sumber
Bagi saya apa pun yang saya lakukan, saya dapatkan: Penyebab: tidak dapat menemukan jalur sertifikasi yang valid ke target yang diminta
slashdottir
@ slashdottir mungkin ada hubungannya dengan jaringan yang Anda gunakan (jika di tempat kerja atau Universitas) atau Anda mungkin perlu menutup IDEA, menyalakan kembali mesin, dan membangun kembali dari proyek baru. Lihat stackoverflow.com/questions/42415666/… , meskipun itu adalah Android-studio, itu mungkin masih berguna. Beri tahu saya jika ada yang membantu.
Cloudish123
1
Akhirnya hanya beralih ke bangunan gradle dari perintah-baris - bekerja dengan baik seperti itu - thx
slashdottir
9

Ini hanya instruksi untuk MAC. Saya memiliki masalah yang sama. Aku dipecahkan dengan mengkonfigurasi $GRADLE_HOMEdi .bash_profile. Begini cara melakukannya:

  • Buka .bash_profile(biasanya terletak di direktori home pengguna).
  • Tambahkan baris berikut untuk memperbarui $PATHvariabel: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • Simpan itu.
  • Terapkan perubahan Anda dengan menjalankan source .bash_profile

Saya menulis artikel saya sendiri dengan instruksi dalam kasus jika seseorang akan menghadapi masalah yang sama.

skiltets
sumber
Terima kasih atas jawaban anda. Untuk versi gradle4.7: ekspor GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec ekspor PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker
1
@PiashSarker, saya bisa melihat itu /usr/local/opt/gradle/libexecadalah symlink ke /usr/local/Cellar/gradle/4.7/libexec . Jika versi gradle akan diperbarui, symlink juga akan diperbarui secara otomatis. Mengatakan itu, masih lebih aman untuk digunakan /usr/local/opt/gradle/libexec. Harap perbaiki saya jika saya salah.
skryvets
9

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

\ Android studio \ gradle tidak berfungsi untuk saya.

Dan "Default gradle wrapper" tidak dikonfigurasikan saat mengimpor (kloning) proyek dari bitbucket

Jika menyebabkan masalah untuk mencari tahu jalannya, inilah jalan saya:

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

Prab
sumber
Tidak sangat membantu untuk memposting jalur yang hanya berfungsi dengan nama pengguna Anda dan nomor versi tertentu. Juga tidak membantu untuk tidak mengusulkan solusi apa pun.
MarkHu
6

Pada mac, idealnya berada di: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(Ganti string versi dengan yang terbaru)

AnupamChugh
sumber
7
@RuchirBaronia Hanya jika Anda menggunakan Android Studio
hitch.united
Itu sama sekali bukan jawaban. Apa yang seharusnya "idealnya" bukanlah yang perlu dijawab.
wyde19
Tentunya versi Gradle akan terus naik selama bertahun-tahun. Coba ini untuk melihat apa yang Anda miliki saat ini:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu
3

AFAIK itu GRADLE_HOME bukan GRADLE_USER_HOME (lihat instalasi gradle http://www.gradle.org/installation ).

Di sisi lain saya bermain sedikit dengan dukungan Gradle di Idea 13 Cardea dan saya pikir rumah gradle tidak secara otomatis ditemukan oleh Idea. Jika demikian, Anda dapat mengajukan masalah di YouTube.

Juga, jika Anda menggunakan gradle 1.6+ Anda dapat menggunakan dukungan Graldle untuk mengatur build dan wrapper. Saya pikir ide secara otomatis menemukan proyek grader berbasis wrapper.

$ gradle setupBuild --type java-library

$ pembungkus gradle

Catatan: Jenis perpustakaan yang didukung: basic, maven, java

Salam

jtonik
sumber
3

Jika Anda menggunakan MacPorts, jalurnya adalah

/opt/local/share/java/gradle
Daniel Scott
sumber
2

Saya harus mengatur Project SDK sebelum memilih jalur gradle. Setelah itu diatur dengan benar, saya harus memilih "Gunakan pembungkus gradle default (disarankan) dalam dialog" Import Project from Gradle ".

Masih berfungsi jika saya menghapus gradle menggunakan minuman:

$ brew remove gradle

masukkan deskripsi gambar di sini

pengguna674669
sumber
2

Di sinilah rumah gradle saya berada (Arch Linux):

/usr/share/java/gradle/
VBorisoff
sumber
1

Saya mempunyai beberapa kesalahan aneh dimana tidak dapat menemukan kelas saya, saya harus klik kanan pada folder src saya (berwarna merah) untuk "Jadikan Direktori sebagai" -> Source Folder Root

Burf2000
sumber
0

Klik Baru -> Proyek dari sumber yang ada -> Impor proyek gradle ...

Maka Ide diakui gradle secara otomatis.

Martin Pfeffer
sumber
0

Saya tidak bisa menerimanya untuk menerima pilihan JVM Gradle saya sampai saya menghapus JDK yang rusak

Jendela di bawah ini dari File -> Pengaturan Lainnya -> Struktur Untuk Proyek Baru ...

Gradle JVM yaitu jalur home JDK

Saya mendapat entri 1,8 JDK SDK merah di sini, setelah saya menghapus kesalahan Gradle JVM di bawah ini hilang dan saya bisa melanjutkan ke langkah berikutnya

Kesalahan JVM tingkat

Kevin
sumber
-1

Jika Anda menggunakan Mac, kemungkinan besar rumah gradle Anda /usr/local/gradle-2.0misalnya.

Dalam preferensi pencarian IDEA untuk gradle dan set home gradle seperti yang diberikan di atas. Itu harus bekerja

Ram
sumber