Làm cách nào để xác định nhà của Gradle trong IDEA?


390

Tôi đang cố gắng nhập dự án Gradle vào IntelliJ và khi tôi vào Gradle Homehộp văn bản, nó không được tự động điền, cũng sẽ không nhập vào đường dẫn Gradle Homekết quả ở một vị trí hợp lệ - Tôi có bộ GRADLE_USER_HOMEbiến môi trường (theo những gì tôi nghĩ là !) đường dẫn chính xác và tôi đã có thể nhập thành công dự án này vào Eclipse. Bất kỳ đề xuất?


Vâng, cuộc thảo luận trên trang JetBrains dường như cho thấy đó là một vấn đề với các liên kết tượng trưng - xem trả lời của Denis.Zhdanov tại đây: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-cain

1
Câu hỏi hay. Bạn có muốn chọn một câu trả lời hợp lệ cho điều này. Đừng đi theo điểm - Tôi sẽ đề nghị @ trenton's. Bạn cũng có thể muốn đề cập đến hệ điều hành này trong câu hỏi.
akauppi

1
Nếu bạn chọn "Sử dụng trình bao bọc lớp mặc định (được khuyến nghị)", bạn không cần thiết lập Trang chủ Gradle. Thật không may, họ không làm mờ hộp đầu vào cho nó - họ chỉ cho biết rằng nó bị vô hiệu hóa bởi loại con trỏ mà bạn có khi bạn di chuột qua nó.
Andrew Grimm

Câu trả lời:


479

Bạn có thể viết một tập lệnh gradle đơn giản để in GRADLE_HOMEthư mục của bạn .

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

và đặt tên cho nó build.gradle.

Sau đó chạy nó với:

gradle getHomeDir

Nếu bạn đã cài đặt với homebrew, hãy sử dụng brew info gradleđể tìm đường dẫn cơ sở (nghĩa là /usr/local/Cellar/gradle/1.10/) và chỉ cần nối thêm libexec.

Nhiệm vụ tương tự trong Kotlin trong trường hợp bạn sử dụng build.gradle.kts:

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

10
Đối với những người trên Linux Mint / Ubuntu, thì đó /usr/share/gradlelà đầu ra của tập lệnh lớp này.
Arthur

3
@Steve Rất vui được giúp đỡ. Tối nay tôi là một người thụ hưởng. twitter.com/TrentonL/status/729546995686248448
Trenton

3
Điều này làm việc cho tôi, nhưng nó rất ngu ngốc. Tôi đã sử dụng Trình quản lý SDK của Gradle để cài đặt Gradle. Tại sao IntelliJ không thể sử dụng nó?
Ứng dụng tự động

Trên Fedora 25 đó là / usr / share / gradle.
Uri Simchoni

2
Đối với Arch Linux, đó là:/usr/share/java/gradle
SirWojtek

273

Được cài đặt trên máy Mac thông qua Homebrew, đường dẫn

/usr/local/opt/gradle/libexec

thích hơn

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

kể từ trước đây sẽ tồn tại nâng cấp phiên bản.


Đây cũng là trường hợp của Android Studio (kể từ AS 1.3, dù sao đi nữa).
James

Thật tuyệt, tôi đã kết thúc việc sử dụng con thú này để đặt GRADLE_HOME của mình (để ngăn sự cố khi nâng cấp lớp với bia) export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` Nếu ai đó có thể đơn giản hóa, điều đó cũng sẽ hữu ích :)
mlo55

2
@ mlo55 dễ sử dụng hơn nhiềuexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere

@ mlo55 tại sao bạn làm điều đó trong python chứ không chỉ gọi which gradletrong shell?
Mike Young

@MikeYoung, lúc đó tôi chưa cài đặt realpath. nb: Bây giờ tôi sử dụng export GRADLE_HOME="$(brew --prefix gradle)/libexec/"theo khuyến nghị của @delitescene. So sánh ls "$(brew --prefix gradle)/libexec/"với ls "$(which gradle)/libexec/"trên osx, nếu bạn sử dụng brew.
mlo55

93

Nếu bạn đã cài đặt gradle với homebrew, thì đường dẫn là:

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

Trong đó XX là phiên bản của lớp (hiện 2.1)


46

Nếu bạn đang sử dụng IntelliJ, chỉ cần làm như sau.

  1. Đóng dự án
  2. (lại) Mở dự án
  3. bạn sẽ thấy thông báo "Nhập dự án lớp" ở phía dưới bên phải. nhấp chuột.
  4. chọn "Sử dụng trình bao bọc lớp mặc định". không "Sử dụng phân phối lớp địa phương"

nhập mô tả hình ảnh ở đây

Đó là tất cả.


Nếu bạn chọn "Sử dụng trình bao bọc lớp mặc định", không cần thiết phải cung cấp Gradle home?
Andrew Grimm

Trả lời có. Đổ lỗi cho UX xấu mà tôi đã không nhận thấy trước đây.
Andrew Grimm

1
"Use gradle 'wrapper' task configuration"làm việc cho tôi - idk ý nghĩa của nó
scottysseus

1
Nếu bạn muốn IDEA xác định phiên bản lớp của bạn cho bạn từ tập lệnh xây dựng thực tế của bạn thì bạn chọn "Sử dụng cấu hình tác vụ của lớp 'trình bao bọc'
Cloudish123

@AndrewGrimm Trong trường hợp của tôi, nút radio này bị tắt. Vì vậy, tôi không thể chọn nó. Có ý kiến ​​gì không?
Mikheil Zhghenti

42

Đây là điều giúp tôi giải quyết vấn đề không cài đặt nhà Gradle cho IDEA khi nhập dự án Gradle.

BA LỰA CHỌN - (A) Cấu hình tác vụ của trình bao bọc mặc định (B) "lớp bọc 'lớp" HOẶC (C) "phân phối lớp cục bộ" được xác định bởi jetbrains: https://www.jetbrains.com/help/idea/gradle-sinstall .html

A. Wrapper mặc định (được khuyến nghị)

Nếu bạn có thể, chọn tùy chọn được đề nghị này. Nếu nó có màu xám, xem tùy chọn C, sau đó sẽ đặt mặc định của bạn cho tất cả các dự án tiếp theo.

B. Cấu hình tác vụ 'Wrapper' của Gradle

Nếu bạn muốn IDEA xác định phiên bản lớp của bạn cho bạn từ tập lệnh xây dựng của bạn

  1. Đặt tùy chọn này nếu bạn xác định các phiên bản xây dựng lớp của bạn là một nhiệm vụ trong bản dựng lớp thực tế của bạn.

Ví dụ dưới đây từ jetbrains: https://www.jetbrains.com/help/idea/gradle-sinstall.html

nhập mô tả hình ảnh ở đây

(hữu ích nếu bạn không muốn chia sẻ các bản dựng lớp giữa các dự án)

C. Phân phối cấp địa phương

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

Điều này là do "libexec sẽ được sử dụng bởi các trình tiện ích khác và các tiện ích hệ thống được thực thi bởi các chương trình khác" (ví dụ IDEA). Vui lòng xem /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.

nhập mô tả hình ảnh ở đây

  1. IDEA bây giờ đã cho phép bạn nhấn OK nhập mô tả hình ảnh ở đây

Đối với tôi bất kể tôi làm gì, tôi nhận được: Nguyên nhân: không thể tìm thấy đường dẫn chứng nhận hợp lệ cho mục tiêu được yêu cầu
slashdottir

@slashdottir nó có thể có liên quan đến mạng bạn đang sử dụng (nếu ở nơi làm việc hoặc trường đại học) hoặc bạn có thể cần phải đóng IDEA, khởi động lại máy và xây dựng lại từ một dự án mới. Xem stackoverflow.com/questions/42415666/ Mạnh , mặc dù là Android-studio nhưng nó vẫn có thể hữu ích. Hãy cho tôi biết nếu bất kỳ điều này giúp.
Cloudish123

1
Cuối cùng chỉ cần chuyển sang xây dựng lớp từ comand-line - hoạt động ổn theo cách đó - thx
slashdottir

9

Đây là hướng dẫn chỉ dành cho MAC. Tôi đã từng gặp vấn đề tương tự. Tôi đã giải quyết nó bằng cách cấu hình $GRADLE_HOMEtrong .bash_profile. Đây là cách bạn làm điều đó:

  • Mở .bash_profile(thường là trong thư mục nhà của người dùng).
  • Thêm các dòng sau để cập nhật $PATHbiến: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • Lưu nó
  • Áp dụng các thay đổi của bạn bằng cách chạy source .bash_profile

Tôi đã viết bài viết của riêng tôi với hướng dẫn trong một trường hợp nếu ai đó sẽ gặp phải vấn đề tương tự.


Cảm ơn câu trả lời của bạn. Đối với phiên bản gradle4.7: export GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec export PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker

1
@PiashSarker, tôi có thể thấy đó /usr/local/opt/gradle/libexeclà một liên kết tượng trưng đến /usr/local/Cellar/gradle/4.7/libexec . Nếu phiên bản lớp sẽ được cập nhật, symlink cũng sẽ được tự động cập nhật. Nói vậy, nó vẫn an toàn hơn để sử dụng /usr/local/opt/gradle/libexec. Vui long sửa cho tôi nêu tôi sai.
skryvets

9

C: \ Users \ <_ tên người dùng> \. Gradle \ Wrapper \ dists \ gradle - <_ version> -all \ <_ number_random_maybe> \ gradle - <_ version>

Studio Android \ gradle không làm việc cho tôi.

Và "Trình bao bọc lớp mặc định" không được định cấu hình trong khi nhập (nhân bản) dự án từ bitbucket

Nếu nó gây ra vấn đề để tìm ra đường dẫn, thì đây là đường dẫn của tôi:

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


Không hữu ích để đăng một đường dẫn chỉ hoạt động với tên người dùng và số phiên bản cụ thể của bạn. Cũng không hữu ích để không đề xuất bất kỳ giải pháp.
MarkHu

6

Trên máy mac, lý tưởng nhất là tại: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(Thay thế chuỗi phiên bản mới nhất)


7
@RuchirBaronia Chỉ khi bạn đang sử dụng Android Studio
hitch.united

Đó không phải là một câu trả lời. Những gì nó nên là "lý tưởng tại" không phải là những gì cần phải được trả lời.
wyde19

Rõ ràng phiên bản của Gradle sẽ tiếp tục tăng lên trong những năm qua. Hãy thử điều này để xem những gì bạn hiện có:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu

3

AFAIK đó là GRADLE_HOME chứ không phải GRADLE_USER_HOME (xem phần cài đặt lớp http://www.gradle.org/installation ).

Mặt khác, tôi đã chơi một chút với sự hỗ trợ của Gradle trong Idea 13 Cardea và tôi nghĩ rằng ngôi nhà lớp không được tự động khám phá bởi Idea. Nếu vậy bạn có thể gửi một vấn đề trong youtrack.

Ngoài ra, nếu bạn sử dụng lớp 1.6+, bạn có thể sử dụng hỗ trợ Graldle để thiết lập trình xây dựng và trình bao bọc. Tôi nghĩ rằng ý tưởng tự động khám phá dự án gradle dựa trên trình bao bọc.

$ gradle setupBuild --type java-library

$ lớp bọc

Lưu ý: Các loại thư viện được hỗ trợ: cơ bản, maven, java

Trân trọng


3

Nếu bạn đang sử dụng MacPorts, đường dẫn là

/opt/local/share/java/gradle

2

Tôi đã phải thiết lập SDK dự án trước khi chọn đường dẫn lớp. Khi đã được đặt chính xác, tôi phải chọn "Sử dụng trình bao bọc lớp mặc định (được khuyến nghị) trong hộp thoại" Nhập dự án từ cấp ".

Vẫn hoạt động nếu tôi loại bỏ gradle bằng brew:

$ brew remove gradle

nhập mô tả hình ảnh ở đây


2

Đây là nơi mà lớp nhà của tôi ở (Arch Linux):

/usr/share/java/gradle/

1

Tôi đã gặp một số lỗi kỳ lạ khi không thể tìm thấy lớp của mình, tôi phải nhấp chuột phải vào thư mục src của mình (màu đỏ) để "Tạo thư mục dưới dạng" -> Root thư mục nguồn


0

Nhấp vào Mới -> Dự án từ các nguồn hiện có -> Nhập dự án lớp ...

Sau đó, Idea nhận ra lớp tự động.


0

Tôi không thể chấp nhận lựa chọn JVM Gradle của mình cho đến khi tôi xóa một JDK bị hỏng

Cửa sổ bên dưới là từ Tệp -> Cài đặt khác -> Cấu trúc cho các dự án mới ...

Lớp JVM tức là đường dẫn về nhà JDK

Tôi đã có một mục nhập JDK SDK 1.8 màu đỏ ở đây, khi tôi xóa lỗi JVM Gradle bên dưới biến mất và tôi có thể chuyển sang bước tiếp theo

Lỗi lớp JVM


-1

Trong trường hợp bạn đang sử dụng Mac, rất có thể ngôi nhà lớp của bạn sẽ là /usr/local/gradle-2.0ví dụ.

Ưu tiên tìm kiếm IDEA cho lớp và đặt lớp nhà như đã nêu ở trên. Nó nên hoạt động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.