Flutter Gradle Wrapper管理插件gradle_wrapper的使用

Flutter Gradle Wrapper管理插件gradle_wrapper的使用

一个命令行工具

初衷,Gradle 不知道从什么时候开始,将 gradle wrapper 迁移到了 GitHub 上,但是国内访问 GitHub 速度很慢,所以我写了这个工具,通过代理帮你下载 gradle wrapper

如果你会自行配置代理且能找到正确的位置,那么你不需要这个工具。

此工具原理,通过搜索你项目中的 gradle-wrapper.properties 文件,找到 distributionUrl,然后下载对应的 Gradle 版本到对应的目录内。

安全性问题

下载后的 Gradle zip 文件,会被放置在 ~/.gradle/wrapper/dists 对应的版本目录下,这个目录是 Gradle Wrapper 默认的下载目录,如果你不放心,可以自行校验。

此工具仅做下载 zip,不做解压 zip 和创建 .lck .ok 文件,解压由 Gradle Wrapper 自行完成。

代理方案

  • ✅ 使用 ghproxy 代理,这个代理是三方提供的,速度还可以,但是本人不保证它的永久可用,且不保证它的安全性,请根据日志路径自行校验 Gradle zip 是否被篡改。
  • ✅ 使用环境变量 http_proxy 来指定代理,这种方式的下载速度取决于你的节点速度。
  • ✅ 使用 腾讯云镜像,这个镜像是腾讯提供的,自行校验安全性。

使用方法

安装
使用 Dart

pub global 安装或直接从 release 中下载二进制文件。

dart pub global activate gradle_wrapper

这里是否可以直接使用 gradle_wrapper 取决于你是否将 pub global 的 bin 目录加入到了 PATH 环境变量中。

Release 下载

从 release 中下载二进制文件,然后将其放入 PATH 环境变量中。

curl https://raw.githubusercontent.com/CaiJingLong/gradle_wrapper_downloader/main/tool/install-sh.sh | sh

# 国内有的地方访问困难,也可以使用 ghproxy
curl https://mirror.ghproxy.com/https://raw.githubusercontent.com/CaiJingLong/gradle_wrapper_downloader/main/tool/install-sh.sh | sh
查看帮助

可以查看命令的使用参数之类的东西

gradle_wrapper -h

# 或者
dart pub global run gradle_wrapper:gradle_wrapper -h
用 ghproxy 下载
gradle_wrapper g -d <your project path>

# 或者
dart pub global run gradle_wrapper:gradle_wrapper g -d <your project path>
使用自己的代理
export http_proxy=http://localhost:7890

gradle_wrapper p -d <your project path>

dart pub global run gradle_wrapper:gradle_wrapper p -d <your project path>

更多关于Flutter Gradle Wrapper管理插件gradle_wrapper的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Gradle Wrapper管理插件gradle_wrapper的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中,Gradle Wrapper 是一个非常重要的工具,它确保项目构建时使用特定版本的 Gradle,从而避免因不同开发环境中的 Gradle 版本不一致而导致的问题。通常情况下,Flutter 项目会自动生成 Gradle Wrapper 相关文件,但如果你想更灵活地管理 Gradle Wrapper 版本,或者需要手动指定 Gradle 版本,可以使用一些插件来简化这个过程。

常用的 Gradle Wrapper 管理插件

  1. gradle_wrapper 插件

    • 这是一个社区维护的插件,用于简化 Gradle Wrapper 的管理。它可以帮助你轻松地更新或指定 Gradle Wrapper 的版本。
  2. gradle-versions-plugin

    • 这个插件可以帮助你检查项目中使用的依赖库的版本,并且可以用于管理 Gradle Wrapper 的版本。

使用 gradle_wrapper 插件

以下是如何在 Flutter 项目中使用 gradle_wrapper 插件的步骤:

1. 添加插件依赖

android/build.gradle 文件中添加 gradle_wrapper 插件的依赖:

buildscript {
    ext.kotlin_version = '1.5.21'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'gradle.plugin.com.github.spotbugs:gradle-wrapper-plugin:1.0.0' // 添加 gradle_wrapper 插件
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2. 应用插件

android/build.gradle 文件的最上方应用 gradle_wrapper 插件:

plugins {
    id 'com.github.spotbugs.gradle-wrapper' version '1.0.0'
}

wrapper {
    gradleVersion = '7.0.2' // 指定 Gradle 版本
    distributionType = Wrapper.DistributionType.ALL
}

3. 生成或更新 Gradle Wrapper

在终端中运行以下命令来生成或更新 Gradle Wrapper:

./gradlew wrapper

这将会根据你在 wrapper 配置中指定的 gradleVersion 生成或更新 gradle-wrapper.properties 文件。

其他方法:手动更新 Gradle Wrapper

如果你不想使用插件,也可以手动更新 Gradle Wrapper。在 Flutter 项目中,你可以直接修改 android/gradle/wrapper/gradle-wrapper.properties 文件来指定 Gradle 版本:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
回到顶部