จะกำหนดบ้านของ Gradle ใน IDEA ได้อย่างไร?


390

ฉันกำลังพยายามนำเข้าโครงการ Gradle เข้าสู่ IntelliJ และเมื่อฉันไปที่Gradle Homeกล่องข้อความมันจะไม่ถูกเติมโดยอัตโนมัติและจะไม่พิมพ์ในเส้นทางของGradle Homeผลลัพธ์ในตำแหน่งที่ถูกต้อง - ฉันมีGRADLE_USER_HOMEชุดตัวแปรสภาพแวดล้อม (สิ่งที่ฉันคิดว่าเป็น !) เส้นทางที่ถูกต้องและฉันสามารถนำเข้าโครงการเดียวกันนี้สู่ Eclipse ได้สำเร็จ ข้อเสนอแนะใด ๆ


ใช่การสนทนาในเว็บไซต์ JetBrains ดูเหมือนจะบ่งบอกว่าเป็นปัญหากับ symlinks - ดูคำตอบโดย Denis.Zhdanov ที่นี่: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-cain

1
คำถามที่ดี. คุณต้องการเลือกคำตอบที่ถูกต้องสำหรับสิ่งนี้หรือไม่ อย่าทำตามจุด - ฉันอยากจะแนะนำ @ trenton คุณอาจต้องการพูดถึงระบบปฏิบัติการที่เป็นปัญหา
akauppi

1
หากคุณเลือก "ใช้โปรแกรมเสริมการไล่ระดับสีเริ่มต้น (แนะนำ)" คุณไม่จำเป็นต้องตั้งค่าตัวเลือก Gradle Home น่าเสียดายที่มันไม่ได้เป็นสีเทาสำหรับกล่องใส่ - มันแค่ระบุว่ามันถูกปิดการใช้งานตามประเภทของเคอร์เซอร์ที่คุณมีเมื่อคุณวางเมาส์
Andrew Grimm

คำตอบ:


479

คุณสามารถเขียนสคริปต์การไล่ระดับสีอย่างง่ายเพื่อพิมพ์GRADLE_HOMEไดเรกทอรีของคุณ

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

build.gradleและชื่อ

จากนั้นรันด้วย:

gradle getHomeDir

หากคุณติดตั้งกับ homebrew ใช้brew info gradleเพื่อหาเส้นทางพื้นฐาน (คือ/usr/local/Cellar/gradle/1.10/) libexecและเพียงผนวก

งานเดียวกันใน Kotlin ในกรณีที่คุณใช้build.gradle.kts:

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

10
สำหรับสิ่งที่อยู่บน Linux Mint / Ubuntu นั้น/usr/share/gradleเป็นผลลัพธ์ของสคริปต์ gradle นี้
อาเธอร์

3
@ Steve ยินดีที่จะช่วย คืนนี้ฉันเป็นผู้รับผลประโยชน์ twitter.com/TrentonL/status/729546995686248448
เทรนตัน

3
สิ่งนี้ใช้ได้สำหรับฉัน แต่มันช่างโง่เหลือเกิน ฉันใช้ตัวจัดการ SDK ของ Gradle เพื่อติดตั้ง Gradle ทำไม IntelliJ ใช้ไม่ได้
AutonomousApps

ใน Fedora 25 นั่นคือ / usr / share / gradle ด้วย
Uri Simchoni

2
สำหรับ Arch Linux เป็น:/usr/share/java/gradle
SirWojtek

273

ติดตั้งบน Mac ผ่าน Homebrew ซึ่งเป็นพา ธ

/usr/local/opt/gradle/libexec

เป็นที่ต้องการมากกว่า

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

ตั้งแต่อดีตจะอยู่รอดการอัพเกรดเวอร์ชั่น


นี่เป็นกรณีสำหรับ Android Studio (ตั้งแต่ AS 1.3 เป็นต้นไป)
James

ดีมากฉันลงเอยด้วยการใช้สัตว์ร้ายตัวนี้เพื่อตั้ง GRADLE_HOME ของฉัน (เพื่อป้องกันปัญหาเมื่ออัพเกรดเกรดด้วย Brew) export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` หากใคร ๆ ก็สามารถทำให้มันง่ายขึ้นนั่นจะเป็นประโยชน์เช่นกัน :)
mlo55

2
@ mlo55 ใช้งานง่ายขึ้นมากexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere

@ mlo55 ทำไมคุณถึงทำอย่างนั้นในงูหลามมากกว่าแค่เรียกwhich gradleในเชลล์?
Mike Young

@ MikeYoung ฉันไม่ได้ติดตั้ง realpath ไว้ในตอนนั้น nb: ตอนนี้ฉันใช้งานexport GRADLE_HOME="$(brew --prefix gradle)/libexec/"ตามที่ @delitescene แนะนำ เปรียบเทียบls "$(brew --prefix gradle)/libexec/"กับls "$(which gradle)/libexec/"บน osx หากคุณใช้ชง
mlo55

93

หากคุณติดตั้ง gradle ด้วย homebrew ดังนั้นเส้นทางคือ:

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

โดยที่ XX คือรุ่นของการไล่ระดับสี (ปัจจุบัน 2.1)


46

หากคุณใช้ IntelliJ ให้ทำดังต่อไปนี้

  1. ปิดโครงการ
  2. (อีกครั้ง) เปิดโครงการ
  3. คุณจะเห็นข้อความ "นำเข้าโครงการ gradle" ที่ด้านล่างขวา คลิก.
  4. เลือก "ใช้ wrapper gradle เริ่มต้น" ไม่ "ใช้การกระจายแบบไล่ระดับท้องถิ่น"

ป้อนคำอธิบายรูปภาพที่นี่

นั่นคือทั้งหมดที่


หากคุณเลือก "ใช้โปรแกรมเสริมการไล่ระดับสีเริ่มต้น" คุณไม่จำเป็นต้องจัดหาบ้าน Gradle หรือไม่?
Andrew Grimm

คำตอบ: ใช่ โทษมันใน UX ที่ไม่ดีที่ฉันไม่ได้สังเกตมาก่อน
Andrew Grimm

1
"Use gradle 'wrapper' task configuration"ทำงานให้ฉัน - idk มันหมายถึงความคิดอย่างไร
scottysseus

1
ถ้าคุณต้องการให้ IDEA กำหนดเวอร์ชั่นการไล่ระดับสีให้คุณจากสคริปต์บิลด์จริงคุณต้องเลือก "ใช้การกำหนดค่างาน 'แรปเปอร์' ตัว
คั่น

@AndrewGrimm ในกรณีของฉันปุ่มตัวเลือกนี้ถูกปิดใช้งาน ดังนั้นฉันไม่สามารถเลือกได้ ความคิดใด ๆ
Mikheil Zhghenti

42

นี่คือสิ่งที่ช่วยให้ฉันแก้ปัญหาการไม่มี Gradle home set สำหรับ IDEA เมื่อนำเข้าโครงการ Gradle

สามตัวเลือก - (A) ค่าเริ่มต้นของ Wrapper (B) การกำหนดค่างาน "gradle 'wrapper" หรือ (C) "การกระจายตัวของ gradle ในท้องถิ่น" ที่กำหนดโดย jetbrains: https://www.jetbrains.com/help/idea/gradle-settings .html

A. Wrapper เริ่มต้น (แนะนำ)

หากคุณสามารถเลือกตัวเลือกที่แนะนำนี้ หากเป็นสีเทาให้ดูตัวเลือก C ซึ่งควรตั้งค่าเริ่มต้นของคุณสำหรับโครงการที่ตามมาทั้งหมด

B. การกำหนดค่างาน 'Wrapper' ของ Gradle

หากคุณต้องการ IDEA เพื่อกำหนดเวอร์ชันการไล่ระดับสีของคุณจากสคริปต์บิลด์

  1. ตั้งค่าตัวเลือกนี้หากคุณกำหนดเวอร์ชันการสร้าง gradle เป็นงานภายในบิลด์การไล่ระดับสีจริงของคุณ

ตัวอย่างด้านล่างจาก jetbrains: https://www.jetbrains.com/help/idea/gradle-settings.html

ป้อนคำอธิบายรูปภาพที่นี่

(มีประโยชน์หากคุณไม่ต้องการแชร์การสร้างแบบลาดระหว่างโครงการ)

C. การกระจาย 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

นี่เป็นเพราะ "libexec จะต้องใช้โดย daemons อื่นและระบบสาธารณูปโภคที่ดำเนินการโดยโปรแกรมอื่น" (เช่น IDEA) โปรดดู/unix/312146/what-is-the-the-purpose-of-usr-libexec

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

ป้อนคำอธิบายรูปภาพที่นี่

  1. IDEA น่าจะอนุญาตให้คุณกด OK ป้อนคำอธิบายรูปภาพที่นี่

สำหรับฉันไม่ว่าฉันจะทำอะไรฉันจะได้รับ: สาเหตุ: ไม่สามารถหาเส้นทางการรับรองที่ถูกต้องไปยังเป้าหมายที่ร้องขอได้
slashdottir

@slashdottir อาจมีบางอย่างเกี่ยวกับเครือข่ายที่คุณใช้ (ถ้าที่ทำงานหรือมหาวิทยาลัย) หรือคุณอาจต้องปิด IDEA, รีสตาร์ทเครื่องและสร้างใหม่จากโครงการใหม่ ดูstackoverflow.com/questions/42415666/…แม้ว่าจะเป็น Android-studio แต่ก็อาจมีประโยชน์ แจ้งให้เราทราบหากสิ่งนี้ช่วยได้บ้าง
Cloudish123

1
ในที่สุดก็เปลี่ยนมาใช้การสร้าง gradle จาก comand-line - ทำงานออกมาเป็นอย่างนั้น - thx
slashdottir

9

นี่เป็นคำสั่งสำหรับ MAC เท่านั้น ผมมีปัญหาเดียวกัน. ฉันจะแก้ไขได้โดยการกำหนดค่าใน$GRADLE_HOME .bash_profileนี่คือวิธีที่คุณทำ:

  • เปิด .bash_profile (โดยปกติจะอยู่ในไดเรกทอรีหลักของผู้ใช้)
  • เพิ่มบรรทัดต่อไปนี้เพื่ออัพเดต$PATHตัวแปร: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • บันทึกไว้
  • ใช้การเปลี่ยนแปลงของคุณโดยเรียกใช้ source .bash_profile

ฉันเขียนบทความของตัวเองพร้อมคำแนะนำในกรณีที่ใครบางคนจะพบปัญหาเดียวกัน


ขอบคุณสำหรับคำตอบ. สำหรับรุ่น gradle4.7: export GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec export PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker

1
@PiashSarker ผมจะเห็นว่า/usr/local/opt/gradle/libexecเป็น symlink /usr/local/Cellar/gradle/4.7/libexec ไป หากเวอร์ชันของ gradle จะได้รับการอัปเดต symlink ก็จะได้รับการอัปเดตโดยอัตโนมัติเช่นกัน /usr/local/opt/gradle/libexecบอกว่ามันยังคงปลอดภัยในการใช้งาน โปรดแก้ไขฉันหากฉันผิด
skryvets

9

C:. \ Users \ <_ username> \ gradle \ เสื้อคลุม \ dists \ gradle - <_ รุ่น> -all \ <_ number_random_maybe> \ gradle - <_ รุ่น>

\ Android studio \ gradle ไม่ได้ผลสำหรับฉัน

และ "Default gradle wrapper" ไม่ได้ถูกกำหนดค่าในขณะที่นำเข้า (โคลน) โครงการจาก bitbucket

หากมันทำให้เกิดปัญหาในการหาเส้นทางนี่คือเส้นทางของฉัน:

C: \ Users \ prabs \ .gradle \ เสื้อคลุม \ dists \ gradle-5.4.1 ทั้งหมด \ 3221gyojl5jsh0helicew7rwx \ gradle-5.4.1


ไม่ค่อยมีประโยชน์ในการโพสต์เส้นทางที่ใช้งานได้กับชื่อผู้ใช้และหมายเลขรุ่นเฉพาะเท่านั้น ยังไม่มีประโยชน์ที่จะไม่เสนอวิธีแก้ปัญหาใด ๆ
MarkHu

6

สำหรับ mac ควรเป็นที่: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(แทนที่สตริงเวอร์ชันด้วยเวอร์ชันล่าสุด)


7
@RuchirBaronia เฉพาะในกรณีที่คุณใช้ Android Studio
hitch.united

นั่นไม่ใช่คำตอบเลย สิ่งที่ควรเป็น "นึกคิด" ไม่ใช่สิ่งที่จะต้องตอบ
wyde19

เห็นได้ชัดว่าเวอร์ชั่นของ Gradle จะเพิ่มขึ้นเรื่อย ๆ ในช่วงหลายปีที่ผ่านมา ลองใช้สิ่งนี้เพื่อดูว่าคุณมีสิ่งใดในปัจจุบัน:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu

3

AFAIK เป็นGRADLE_HOMEไม่ใช่ GRADLE_USER_HOME (ดูการติดตั้ง gradle ที่http://www.gradle.org/installation )

ในทางกลับกันฉันเล่นกับฝ่ายสนับสนุนของ Gradle ใน Idea 13 Cardea และฉันคิดว่า Idea บ้านไม่ได้ถูกค้นพบโดยอัตโนมัติ ถ้าเป็นเช่นนั้นคุณสามารถยื่นปัญหาใน youtrack

นอกจากนี้หากคุณใช้ gradle 1.6+ คุณสามารถใช้การสนับสนุน Graldle เพื่อตั้งค่า build และ wrapper ฉันคิดว่าความคิดจะค้นพบโปรเจ็กต์การไล่ระดับสีแบบห่อหุ้มโดยอัตโนมัติ

$ gradle setupBuild --type java-library

$ wrapper

หมายเหตุ:ประเภทไลบรารีที่รองรับ: พื้นฐาน, maven, java

ความนับถือ



2

ฉันต้องตั้งค่า SDK โครงการก่อนที่จะเลือกเส้นทางการไล่ระดับสี หลังจากที่ตั้งค่าไว้อย่างถูกต้องฉันต้องเลือก "ใช้ wrapper gradle เริ่มต้น (แนะนำ) ในกล่องโต้ตอบ" นำเข้าโครงการจาก Gradle "

ยังคงใช้งานได้หากฉันลบ gradle ด้วยการชง:

$ brew remove gradle

ป้อนคำอธิบายรูปภาพที่นี่



1

ฉันมีข้อผิดพลาดแปลก ๆ ที่ไม่สามารถหาชั้นเรียนของฉันได้ฉันต้องคลิกขวาที่โฟลเดอร์ src ของฉัน (เป็นสีแดง) เพื่อ "สร้างไดเรกทอรีเป็น" -> รากโฟลเดอร์ต้นทาง


0

คลิกใหม่ -> โครงการจากแหล่งที่มีอยู่ -> นำเข้าโครงการ gradle ...

จากนั้น Idea จะจดจำการไล่ระดับอัตโนมัติ


0

ฉันไม่สามารถยอมรับการเลือก Gradle JVM ของฉันจนกว่าฉันจะลบ JDK ที่ใช้งานไม่ได้

หน้าต่างด้านล่างมาจากไฟล์ -> การตั้งค่าอื่น ๆ -> โครงสร้างสำหรับโครงการใหม่ ...

Gradle JVM เช่นเส้นทางบ้าน JDK

ฉันมีรายการ 1.8 JDK SDK สีแดงที่นี่เมื่อฉันลบข้อผิดพลาด Gradle JVM ด้านล่างหายไปและฉันสามารถไปยังขั้นตอนต่อไป

ข้อผิดพลาดของ Gradle JVM


-1

ในกรณีที่คุณใช้ Mac บ้านที่ไล่ระดับสีที่สุดของคุณน่าจะเป็น /usr/local/gradle-2.0ตัวอย่าง

ในความต้องการของการค้นหา IDEA สำหรับการไล่ระดับสีและตั้งค่าการไล่ระดับที่บ้านตามที่ระบุข้างต้น มันควรจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.