如何在IntelliJ IDEA中更改“默认Gradle Wrapper”的版本?

124

我想使用 Gradle 1.10 而不是 1.9。 但我找不到在哪里更改。

如果我放置了以下内容:

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

在我的 build.gradle 中重新构建后,它再次使用 Gradle 1.9 进行构建(因此实际上没有任何事情发生)。

这些似乎是所有的设置:(而IntelliJ关于Gradle的帮助部分根本没有帮助 :( ) 什么是“未配置为当前”项目的意思?


1
在更改了gradleVersion之后,您是否使用gradle(w) wrapper重新生成了包装器? - Peter Niederwieser
2
尝试过这个:https://dev59.com/oIHba4cB1Zd3GeqPLwrs#24628527 只需删除包装文件,然后再次执行“wrapper”任务。 - The End
1
Gradle任务可以从IntelliJ中运行,因此您应该能够运行包装器任务。也许这就是“使用可定制的Gradle包装器”的意思(但我不确定)。 - Peter Niederwieser
1
谢谢大家的帮助,我通过更改为可定制gradle包装器并执行wrapper任务重新生成包装器来使其正常工作。不过,我仍然不清楚默认gradle包装器是什么。 - Bloke
@Bloke 在 https://dev59.com/mmAf5IYBdhLWcg3wSRHi#27122704 中解释得非常清楚。 - Pijusn
显示剩余3条评论
11个回答

164

最简单的方法是从命令行执行以下命令(请参见升级 Gradle Wrapper中的文档):

./gradlew wrapper --gradle-version 5.5

此外,您可以使用--distribution-type参数,其值为binall,以选择分发类型。 使用all分发类型可避免 IntelliJ IDEA 或 Android Studio 提示您下载带源代码的 Gradle:

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

或者您可以创建一个自定义的wrapper任务。

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

并运行./gradlew wrapper


2
如果在包含子项目的根项目中运行任务,请在任务名称前面加上冒号,运行 ./gradlew :wrapper - Philippe
如果您想在2022年安装最新版本,请运行以下命令:./gradlew wrapper --gradle-version 7.4.1 - Zhasulan Berdibekov

52

打开项目中的gradle/wrapper/gradle-wrapper.properties文件。将distributionUrl中的版本更改为您想要使用的版本,例如,

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

7
最好使用他们为此目的创建的Gradle任务,以便脚本可以正确更新等。 - dabluck
他们还会更新二进制文件和脚本,除非你运行更新任务,否则你无法获取这些更新。这可能会导致不兼容性问题。 - dabluck
1
是的。请参阅Gradle文档中的“升级Gradle Wrapper”(https://docs.gradle.org/4.5.1/userguide/gradle_wrapper.html#sec:upgrading_wrapper)。 - Ilya Serbis

6

您可以设置由包装器任务生成的Gradle版本。
请注意,此解决方案在 Kotlin DSL (build.gradle.kts) 中。

将此代码放入您的顶级build.gradle.kts文件中:

tasks.wrapper {
    gradleVersion = "7.4"
    // You can either download the binary-only version of Gradle (BIN) or
    // the full version (with sources and documentation) of Gradle (ALL)
    distributionType = Wrapper.DistributionType.ALL
}

每当您想更改Gradle版本时:

  1. 将上面的版本更新为所需版本
  2. 执行Gradle wrapper任务:./gradlew wrapper
  3. 同步IDE(从Gradle侧边栏->重新加载图标)

5

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

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

检查方式:

 ./gradlew tasks

要在不使用命令的情况下输入它:
进入-> gradle/wrapper/gradle-wrapper.properties分发URL,并将其更改为更新的zip版本
输出:
 ./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 

4

我想提醒一下,我在更新Android Studio组件后遇到了这个问题。

对我有用的方法是打开gradle-wrapper.properties文件并更新使用的gradle版本。目前,我的项目中该行代码为:

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

4
我曾遇到同样的问题,需要将默认的gradle版本从5.0更改为4.7。以下是在Intellij中更改默认gradle版本的步骤: enter image description here
1)在gradle/wrapper/gradle-wrapper.properties文件中更改distributionUrl属性中的gradle版本

2)点击gradle项目菜单中的刷新按钮,以便开始下载新的gradle zip版本

3
build.gradle中添加以下内容:wrapper { gradleVersion = '6.0' }

2
这个问题很老了,但目前的Intellij IDEA(Android Studio)在对话框下有这个选项: 项目结构 > 项目 > Gradle版本

enter image description here


2
使用gradlew命令构建项目时,gradle中的“wrapper”任务会被调用,如果使用gradle命令构建,则不会调用该任务。因此,您有两种方法可以更改gradle版本。
  1. 使用“gradlew build”命令,该命令将调用您提到的包装器任务。该任务将更改gradle-wrapper.properties文件中的“distributionUrl”参数,并自动下载所需的gradle版本。例如,文件中版本4.2的distributionUrl如下: distributionUrl=https://services.gradle.org/distributions/gradle-4.2-bin.zip
  2. 如果您没有使用gradle wrapper,只需下载所需版本的gradle并设置环境变量路径,还要在IDEA中显示它。
附言:有关gradle wrapper的更多信息,请参阅:https://docs.gradle.org/current/userguide/gradle_wrapper.html

2
在Intellij中更新gradle最简单的方法是,删除项目中的现有gradle文件夹,Intellij会自动下载最新版本。例如,我之前下载的版本是6.41,我只需删除该gradle文件夹,它就会自动下载7.1版本。这可能对某些人有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接