Gradle Wrapper

2024-08-21 01:58
文章标签 gradle wrapper

本文主要是介绍Gradle Wrapper,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Why

试想一下,你做好了一个 Gradle 构建的 Web 应用,并且要分享给他人,让他人可以参与到开发中,但对方下载代码后安装了 Gradle 却发现应用未能正常使用。 经过多次长时候才发现原来是 Gradle 运行时版本不兼容。 怎样解决这个问题呢?

What

Gradle 包装器是 Gradle 的核心特性,能够让机器在没有安装 Gradle 运行时的情况下运行 Grade 构建。它也让构建脚本运行在一个指定的 Gradle 版本上。它是通过中心仓库下载对应版本的 Gradle 运行时来实现的。最终的目标是创造一个独立于系统、系统配置和 Gradle 版本的可靠的、可重复的构建。

How

配置包装器

1、创建一个包装器任务 在 build.gradle 中添加以下代码:

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

2、执行任务生成包装器文件

www.cdoerknock.com$ gradle wrapper
Starting a Gradle Daemon (subsequent builds will be faster)
> Configuring > 0/1 projects > root project > Compiling D:\Windows\Desktop\LearnGradle\Gradle包装器\project\build.gradle:wrapperBUILD SUCCESSFULTotal time: 14.749 secs

此时会生成 gradle 文件夹以及 gradlew、gradlew.bat 文件

|  //下面是 windows 或者 linux 执行 Gradle 命令的包装器脚本
│  gradlew
│  gradlew.bat
└──gradle└─wrapper//Gradle 包装器微类库,包含下载和解包 Gradle 运行时的逻辑gradle-wrapper.jar//包装器元信息,包含已下载 Gradle 运行时的存储位置和原始 URLgradle-wrapper.properties

获取到改代码,但是自己本机没有 Gradle 运行时的同事就可以执行对应操作系统的命令来执行,例如 Windows 系统使用 powershell【cmd也可以】:

//Linux 应该使用 .\gradlew appRun
PS D:\Windows\Desktop\LearnGradle\Gradle包装器\project>    .\gradlew.bat appRun
//从远程库下载对应版本的 Gradle 
Downloading https://services.gradle.org/distributions/gradle-3.4-bin.zip
//解压到默认目录 Linux 还会赋权限 
Unzipping C:\Users\zylia\.gradle\wrapper\dists\gradle-3.4-bin\aeufj4znodijbvwfbsq3044r0\gradle-3.4-bin.zip to C:\Users\zylia\.gradle\wrapper\dists\gradle-3.4-bin\aeufj4znodijbvwfbsq3044r0
:prepareInplaceWebAppFolder
:createInplaceWebAppFolder
:compileJava
:processResources NO-SOURCE
:classes
:prepareInplaceWebAppClasses
:prepareInplaceWebApp
:appRun
14:50:22 INFO  Jetty 9.2.15.v20160210 started and listening on port 9090
14:50:22 INFO  ToDo Application runs at:
14:50:22 INFO    http://localhost:9090/coderknock
Press any key to stop the server.
> Building 87% > :appRun

运行时的 Gradle 是通过 Gradle 项目的中心服务器下载并解压(该下载解压过程只会进行一次,之后会重用)到 C:\Users\用户名.gradle\wrapper\dists (Linux是$HOME_DIR/.gradle/warpper/dists)目录下并且赋予相应权限后来进行构建的。这样就可以解决 Why 里提到的问题了。

Further

如果我们无法访问外网,或者不想解压到默认目录,我们可以通过在 build.gradle 脚本中添加一些自定义配置来修改这些内容【修改后需要重新执行gradle wrapper生成包装器】:

task wrapper(type:Wrapper){gradleVersion='3.4'//获取 Gradle 安装包的 URL 这里可以通过下面的方式使用本地文件(从中央库下载比较慢,我们可以使用迅雷等工具下载后用这种方式比较快捷)distributionUrl='file:///D:/Windows/Desktop/LearnGradle/Gradle包装器/project/gradle-3.4-bin.zip'//C:\Users\用户名\.gradle linux下是 $HOME_DIR/.gradle 的相对路径distributionPath='gradle-dists'
}

这篇关于Gradle Wrapper的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091800

相关文章

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Gradle的基本使用

新建一个项目后,在项目文件夹下创建build.gradle文件,并加入内容:       apply plugin: 'eclipse'。    然后在终端运行gradle eclipse即可构建eclipse IDE的开发环境。    gradle默认值:gradle有些目录是有默认值存在,建议项目的配置,承袭了maven的风格,如:         java的源码目录:src/mai

使用gradle做第一个java项目

涉及到的任务如下: assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。 Total time: 5.581 secs E:\workspace\Test>gradle assemble :compileJava :processResources UP-TO-DATE :classes :findMainClass :jar :b

Gradle的安装和配置

Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具可以切换的,基于约定的构建框架强大的多工程构建支持基于Apache Ivy的强大的依赖管理支持maven, Ivy仓库支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。对Ant的任务做了很好的集成基于Groovy,build脚本使用Groovy编写有广泛的领域模型支持构建 G

兔子-build.gradle中代码的含义

//声明构建的项目类型,这里当然是android了apply plugin: 'com.android.application'//设置编译android项目的参数android {// SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。compileSdkVersion 23//构建工具的版本,其中包括了打包工具aapt、dx等等。// 这个工具的目

Android Studio打开Modem模块出现:The project ‘***‘ is not a Gradle-based project

花了挺长时间处理该问题,特记录如下:1.背景: 在Android studio 下导入一个新增的modem模块,如MPSS.DE.3.1.1\modem_proc\AAA, 目的是看代码方便一些,可以自由搜索各种关键字。但导入该项目时出现了如下错误: The project '***' is not a Gradle-based project.造成的问题: (1) project 下没有代码,而

【Flutter】解决第一次运行项目很慢(gradle需要下载依赖)

配置gradle默认下载路径 默认下C盘谁顶得住 配置环境变量 名称: GRADLE_USER_HOME 值: D:\Develop\gradle 自己创建一个 下边是重点 配置gradle远端下载地址 后边版本号自己换 https://mirrors.cloud.tencent.com/gradle/ https://mirrors.cloud.tencent.com/gradle/g

Android Studio下载Gradle失败问题解决

问题说明 使用 Android Studio 构建程序报错如下 Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-7.5.1-bin.zip'.Reason: java.net.SocketTimeoutException: Connect timed ou

gradle dsl

仅仅是为了 提取 一些 gradle语法 compileSdkVersion: "23" as int, compileSdkVersion Integer.parseInt(ANDROID_BUILD_COMPILE_SDK_VERSION)minSdkVersion Integer.parseInt(MIN_SDK_VERSION)targetSdkVersion Intege

利用libs.versions.toml配置gradle

在新建项目时,我发现了一种较为简洁的gradle依赖配置方式——libs.version.toml。 该文件存储在项目级别的gradle -> libs.versions.toml路径下。在一个toml文件中包含三个级别:version、libraries和plugins。分别用于存储依赖库的版本号、名称以及插件名称。 此处我们以datastorePrefences依赖库为例,不使用toml文