Nhận phụ thuộc Gradle trong IntelliJ IDEA bằng cách sử dụng bản dựng Gradle


140

Xây dựng lớp, ngay cả từ bên trong IntelliJ IDEA không đặt các phụ thuộc vào thư mục "Thư viện bên ngoài", vì vậy các lớp này không hiển thị dưới dạng các đề xuất trong trình chỉnh sửa và khi tôi thêm chúng dưới dạng nhập thì có lỗi biên dịch.

Ví dụ: làm cách nào để IntelliJ tự động kết hợp các phụ thuộc trong tệp build.gradle của tôi :

compile 'com.google.code.gson:gson:1.7.2


2
Nhập dự án dưới dạng dự án lớp, đảm bảo bạn đã bật hỗ trợ lớp.
M. Deinum

Câu trả lời:


191

Bạn có thể cần nhập dự án dưới dạng dự án Gradle từ bên trong Idea. Khi bạn thêm một phụ thuộc, bạn cần mở cửa sổ Gradle và thực hiện làm mới.

Hoặc tạo các tệp dự án từ lớp với điều này:

bản dựng.

apply plugin: 'idea'

Và sau đó chạy:

$ gradle idea

Nếu bạn sửa đổi các phụ thuộc, bạn sẽ cần phải chạy lại ở trên.


apply plugin: 'idea'nên được thêm vào trong mọi trường hợp.
Peter Niederwieser

@PeterNiederwieser - nếu bạn đang nhập từ Idea, nó có ảnh hưởng gì không?
tddmonkey

Nó cho phép cấu hình các khía cạnh khác nhau của thiết lập IntelliJ (ví dụ: sử dụng JDK nào), được nhập khẩu. Nếu bản dựng của bạn không có bất kỳ cấu hình nào như vậy, có thể không cần thiết phải áp dụng plugin (Tôi chưa bao giờ thử mà không có).
Peter Niederwieser

cảm ơn, rất vui được biết, tôi độc quyền sử dụng gradle để tạo các tệp dự án cho tôi vì vậy không bao giờ cần phải làm điều này
tddmonkey

Giữ tương tự khi tạo tệp dự án, ngoại trừ việc áp dụng plugin chắc chắn không phải là tùy chọn trong trường hợp đó.
Peter Niederwieser

188

Sau khi thêm phụ thuộc, mở tab "Gradle" ('Xem' -> Công cụ Windows-> Gradle) và nhấn "refresh"

ví dụ về việc thêm (biên dịch 'io.reactivex: rxjava: 1.1.0'):

nhấn làm mới

Nếu Idea vẫn không thể giải quyết sự phụ thuộc, do đó có thể phụ thuộc không nằm trong kho lưu trữ mavenCentral () và bạn cần thêm kho lưu trữ nơi phụ thuộc này nằm trong kho {}


13
Nhưng dường như nó không hoạt động. Tôi đã thêm một phụ thuộc và được làm mới, nhưng khi tôi cố gắng nhập thư viện bằng mã nguồn XML hoặc Java, IDEA không thể giải quyết nó.
AuBee

3
Đã làm cho tôi. Rất may, ngay cả khi không sử dụng plugin gradle ý tưởng.
gMale

2
@AuBee: Tôi gặp vấn đề tương tự. Nó biến mất khi tôi xây dựng (chỉ một lần) bằng cách sử dụng Gradle từ dòng lệnh.
Thomas

@Thomas Có. CLI luôn có quyền kiểm soát nhiều hơn
Andrey

@AuBee Nếu Ý tưởng không thể giải quyết sự phụ thuộc, do đó có thể phụ thuộc không nằm trong kho lưu trữ mavenCentral () và bạn cũng cần thêm kho lưu trữ vào kho lưu trữ {}
Andrey

20

Khi nhập một dự án Gradle hiện có (một với a build.gradle) vào IntelliJ IDEA, khi được trình bày với màn hình sau, hãy chọn Nhập từ mô hình bên ngoài -> Gradle .

Dự án nhập khẩu từ mô hình bên ngoài

Tùy chọn, chọn Tự động nhập trên màn hình tiếp theo để tự động nhập phụ thuộc mới.


3
Trên thực tế, câu trả lời này đã giải quyết vấn đề của tôi và nên là điều đầu tiên bạn làm trước khi trả lời đúng thực tế ở trên.
quickinsights

3
Đây là giải pháp duy nhất thực sự hoạt động và là chính xác. Thêm một cái gì đó vào gradle.properies chỉ cho ý tưởng là hoàn toàn sai.
dùng219882

Tôi không thể làm nổi bật cú pháp và tự động hoàn thành để hoạt động mà không thực hiện bước này trong quá trình nhập ban đầu. Bạn có thể sửa nó mà không cần nhập lại nhưng điều này dễ hơn nhiều, ít nhất là trên một dự án nhỏ.
Ed Norris

@ user219882 - tại sao việc thêm một cái gì đó vào bản dựng của bạn "hoàn toàn sai"?
tddmonkey

@tddmonkey vì IDE mà người dùng chọn sử dụng không liên quan đến việc mô tả cách xây dựng diễn ra.
Qix - MONICA ĐƯỢC PHÂN PHỐI

11

Đối với những người đang gặp lỗi "Không thể giải quyết các phụ thuộc":
Tắt "Chế độ ngoại tuyến"
('Xem' -> Công cụ Windows-> Gradle)

cửa sổ lớp


5

Bài đăng trên của Andrey vẫn còn hiệu lực cho phiên bản mới nhất của Intellij kể từ quý 3 năm 2017. Vì vậy, hãy sử dụng nó. Ause Nguyên nhân, xây dựng dự án và xây dựng lớp dòng lệnh bên ngoài, KHÔNG thêm nó vào các phụ thuộc bên ngoài trong Intellij ... điên vì điều đó nghe có vẻ đúng. Bây giờ chỉ khác là giao diện người dùng trông khác với ở trên, nhưng vẫn sử dụng cùng một biểu tượng để cập nhật. Tôi chỉ đặt câu trả lời ở đây, vì tôi không thể dán ảnh chụp nhanh của giao diện người dùng mới ... Tôi không muốn có bất kỳ phiếu bầu nào. Andrey vẫn đưa ra câu trả lời đúng ở trên: nhập mô tả hình ảnh ở đây


1

Trong trường hợp của tôi, tôi đã gặp lỗi khi làm mới lớp ('Xem' -> Công cụ Windows-> Gradle) và nhấn "refresh" và nhận được lỗi này không có sự chuyển đổi thuộc tính như vậy đối với lớp jetgradleplugin.

Phải cài đặt intellij mới nhất tương thích với lớp 5+

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.