缘起:搜到下面这篇文章是为了解决MC中MOD开发包MODMDK1.16.5时遇到到的Gradle下载失败问题。根据文章中的讲解,自己通过gradle-wrapper.properties文件中的url通过浏览器下载到了Gradle个Jar文件,放到了对应的文件夹中,但运行命令时还是会重新下载Gradle,可能是需要解压成文件夹吧。感谢原作者的分享!
转载正文:当把本地一个项目放入到远程版本库的时候,如果这个项目是以gradle构建的,那么其他人从远程仓库拉取代码之后如果本地没有安装过gradle会无法编译运行,如果对gradle不熟悉,会使得无法很好的去快速构建项目代码。所以gradle可以自动生成一键运行的脚本,把这些一起上传远程仓库,使得即使没有安装gradle也可以自动去安装并且编译项目代码。
- Gradle是个构建系统,能够简化你的编译、打包、测试过程。熟悉Java的同学,可以把Gradle类比成Maven。
- Gradle Wrapper的作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。Gradle Wrapper是Gradle项目的一部分。
简单的gradle wrapper生成
【gradle wrapper生成】
我们在新建的目录下使用命令行输入gradle wrapper
命令
【gradle wrapper文件说明】
|____gradle
| |____wrapper
| | |____gradle-wrapper.jar //具体业务逻辑
| | |____gradle-wrapper.properties //配置文件
|____gradlew //Linux 下可执行脚本
|____gradlew.bat //Windows 下可执行脚本
(1)gradlew.bat
gradlew.bat
是bat 脚本,Windows 用户可以通过它执行 Gradle 任务,配合gradle文件夹使用。
而Linux使用的是gradlew
,gradlew
是一个shell 脚本,Unix 用户可以通过它来执行 Gradle 任务。
(2)gradle-wrapper.jar
gradle-wrapper.jar是Gradle Wrapper的主体功能包(wrapper 的代码所在)。项目打包必须要有的,不然无法去执行gradlew。
(3)gradle-wrapper.properties
gradle-wrapper.properties
文件主要指定了该项目需要什么版本的Gradle,从哪里下载该版本的Gradle,下载下来放到哪里。
我们使用gradlew命令的使用,会根据这个文件来使用对应的gradle进行构建。当本地GRADLE_USER_HOME
(当前用户目录,一般指~/.gradle
)中的~/.gradle/wrapper/dists
没有安装gradle时,将会自动从此地址distributionUrl
中下载gradle,之后的执行将不会再次下载安装。
【文件如何配合使用】
当从版本库下载代码之后,如果你本机安装过gradle,当然直接直接编译运行既可。但是对没有安装gradle的用户,可以执行项目根目录下的gradlew.bat
脚本(Linux是执行gradlew
命令),将会在gradle-wrapper.properties
中的~/.gradle/wrapper/dists
目录中首次下载并安装gradle并可以编译代码,一个指令可以下载并安装gradle来构建项目,由此可见非常方便。大概流程如下:
- 解析
gradle-wrapper.properties
文件,获取项目需要的 gradle 版本下载地址。 - 判断本地用户目录下的
~/.gradle
目录下是否存在该版本,不存在该版本,走第3点,存在走第4点。 - 下载
gradle-wrapper.properties
指定版本,并解压到用户目录的下~/.gradle
文件下。 - 利用
~/.gradle
目录下对应的版本的 gradle 进行相应自动编译操作。
作者:不知名的蛋挞
链接:https://www.jianshu.com/p/db94d39478d6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。