Làm cách nào để thay đổi phiên bản của 'trình bao bọc gradle mặc định' trong IntelliJ IDEA?


94

Tôi muốn sử dụng Gradle 1.10 thay vì 1.9. Tôi dường như không thể tìm thấy nơi để thay đổi điều này.

Nếu tôi đặt điều này:

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}

trong của tôi build.gradlevà xây dựng lại, nó được xây dựng lại với Gradle 1.9 (vì vậy không có gì thực sự xảy ra).

Đây dường như là tất cả các cài đặt: (và phần trợ giúp của IntelliJ về Gradle không giúp ích gì cả :() Dự án "không được cấu hình cho hiện tại" có nghĩa là gì?


1
Bạn có tạo lại trình bao bọc gradle(w) wrappersau khi thay đổi gradleVersionkhông?
Peter Niederwieser

2
đã thử điều này: stackoverflow.com/questions/24460299/… chỉ cần xóa các tệp trình bao bọc và sau đó thực hiện lại wrappertác vụ
Kết thúc

Không cần xóa bất kỳ tệp nào.
Peter Niederwieser

1
Các tác vụ Gradle có thể được chạy từ IntelliJ, vì vậy bạn cũng có thể chạy tác vụ trình bao bọc. Ngoài ra, có thể đây là những gì "sử dụng trình bao bọc gradle có thể tùy chỉnh" là về (nhưng tôi không chắc chắn).
Peter Niederwieser

1
Cảm ơn các bạn đã giúp đỡ, tôi đã quản lý để làm cho nó hoạt động bằng cách thay đổi thành trình bao bọc gradle có thể tùy chỉnh và tạo lại trình bao bọc bằng cách thực hiện wrappertác vụ. Tuy nhiên, tôi vẫn chưa hiểu rõ thực ra trình bao bọc gradle mặc định là gì .
Bloke

Câu trả lời:


111

Cách dễ nhất là thực hiện lệnh sau từ dòng lệnh (xem Nâng cấp Gradle Wrapper trong tài liệu):

./gradlew wrapper --gradle-version 5.5

Hơn nữa, bạn có thể sử dụng --distribution-typetham số với một trong hai binhoặc allgiá trị để chọn loại phân phối. Sử dụng allloại phân phối để tránh một gợi ý từ IntelliJ IDEA hoặc Android Studio sẽ cung cấp cho bạn tải xuống Gradle với các nguồn:

./gradlew wrapper --gradle-version 5.5 --distribution-type all

Hoặc bạn có thể tạo một wrappertác vụ tùy chỉnh

task wrapper(type: Wrapper) {
    gradleVersion = '5.5'
}

và chạy ./gradlew wrapper.


2
Nếu chạy tác vụ trong một dự án gốc có chứa các dự án con, hãy chạy ./gradlew :wrappervới dấu hai chấm phía trước tên tác vụ.
Philippe

36

Mở tệp gradle/wrapper/gradle-wrapper.propertiestrong dự án của bạn. Thay đổi phiên bản trong distributionUrlđể sử dụng phiên bản bạn muốn sử dụng, ví dụ:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

4
tốt hơn để sử dụng nhiệm vụ gradle họ tạo ra cho mục đích này nên kịch bản cập nhật đúng cách, vv
dabluck

họ cũng cập nhật các tệp và tập lệnh nhị phân của họ, mà bạn không nhận được trừ khi bạn chạy tác vụ cập nhật. này có khả năng có thể tạo ra incompatibilties
dabluck

1
Vâng. Xem tài liệu Nâng cấp Gradle Wrapper trong Gradle.
Lu55

4

Tôi chỉ muốn nói rằng tôi đã đạt được điều này sau khi cập nhật các thành phần Android Studio.

Điều làm việc cho tôi là mở gradle-wrapper.properties và cập nhật phiên bản gradle được sử dụng. Hiện tại đối với các dự án của tôi, dòng ghi:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip

3

./gradlew wrapper --gradle-version=5.4.1 --distribution-type=bin

https://gradle.org/install/#manently

Để kiểm tra:

 ./gradlew tasks

Để nhập nó mà không cần lệnh:

đi tới-> gradle/wrapper/gradle-wrapper.properties url phân phối và thay đổi nó thành phiên bản zip cập nhật

đầu ra:

 ./gradlew tasks
Downloading https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
...................................................................................

Welcome to Gradle 5.4.1!

Here are the highlights of this release:
 - Run builds with JDK12
 - New API for Incremental Tasks
 - Updates to native projects, including Swift 5 support

For more details see https://docs.gradle.org/5.4.1/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

> Starting Daemon 

2

trong build.gradleadd wrapper { gradleVersion = '6.0' }


1

Tác vụ 'wrapper' trong gradle được gọi nếu lệnh gradlew được sử dụng, nếu bạn sử dụng lệnh gradle để xây dựng tác vụ trình bao bọc sẽ không được gọi. Vì vậy, có hai cách để bạn có thể thay đổi phiên bản gradle của mình.

  1. Sử dụng lệnh 'gradlew build', lệnh này sẽ gọi tác vụ wrapper mà bạn đã đề cập. Tác vụ đó sẽ thay đổi tham số 'DistributionUrl' trong tệp gradle-wrapper.properties và nó sẽ tự động tải xuống phiên bản gradle mà bạn muốn. Ví dụ về phân phốiUrl trong tệp cho phiên bản 4.2. phân phốiUrl = https: //services.gradle.org/distributions/gradle-4.2-bin.zip

  2. Nếu bạn không sử dụng trình bao bọc gradle, chỉ cần tải xuống phiên bản của gradle bạn muốn và đặt đường dẫn biến môi trường và cũng hiển thị nó cho IDEA.

Tái bút để biết thêm thông tin về trình bao bọc gradle, tôi khuyên bạn nên đọc: https://docs.gradle.org/current/userguide/gradle_wrapper.html


1

Tôi đã gặp phải vấn đề tương tự khi thay đổi phiên bản gradle mặc định từ 5.0 thành 4.7, Dưới đây là các bước để thay đổi phiên bản gradle mặc định trong intellij 1) Thay đổi phiên bản gradle trong gradle / wrapper / gradle-wrapper .properties trong phân phối thuộc tính nàyUrl 2) Nhấn nút làm mới trong menu dự án gradle để nó sẽ bắt đầu tải xuống phiên bản zip gradle mớinhập mô tả hình ảnh ở đây



0

Đầu tiên, hãy để gradle đặt Url phân phối chính xác

cd projectDirectory
./gradlew wrapper --gradle-version 2.3.0

Sau đó - có thể không cần thiết nhưng đó là những gì tôi đã làm - chỉnh sửa build.gradle của dự án để phù hợp với phiên bản

    dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Cuối cùng, xóa các thư mục .gradle và gradle và các tệp gradlew và gradlew.bat. ( Câu trả lời gốc )

Bây giờ, hãy xây dựng lại dự án.

Vì các câu trả lời khác không đủ đối với tôi và nhận xét chỉ ra các bước bổ sung này rất dễ bị bỏ qua, đây là một câu trả lời riê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.