Gradle入门了解
最近项目中使用到了Gradle所以就抓紧学习了一下。以下资料来自互联网,属于个人整理。图片如有侵权会删除
不同管理工具的区别
版本兼容问题
Gradle存在版本兼容问题,不同的IDEA与Gradle存在版本问题,同样Spring Boot和Gradle也存在版本兼容问题。 Idea可以在安装目录下的plugs目录下查看当前版本的idea适配哪些Gradle Mac电脑的具体目录可以在app的
显示包目录
下查看,如图所示:
JDK版本问题
要求JDK要求不能低于1.8,具体可查看官方文档
目录结构
注意:gradlew与gradlew.bat执行的指令是wrapper中的gradle指令,不是本地安装的gradle指令
常用指令
注意:gradle命令要在含有build.gradle文件的目录下执行
修改maven下载源
因为Gradle的下载源是国外的,由于国内的原因访问速度很慢,所以我们需要修改一下下载源。可以在
gradle
目录下的
inid.d
目录下新增/修改以
.gradle
后缀结尾的文件,它可以实现在build之前执行,操作如图所示:
init.gradle
文件内容如下:
// 针对所有功能
allprojects {
// 项目所需要的jar包会从这里下载
repositories {
// maven的本地仓库 这里必须要配置环境变量 M2_HOME:maven本地长仓库路径
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
// maven中央仓库
mavenCentral()
// build gradle 构建脚本使用,构架脚本本身需要的依赖
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
Mac的环境变量M2_HOME截图
init.gradle的执行方式
-
使用命令行指定:
**gradle --init-script yourdir/init.gradle -q taskName**
可以多次输入此命令来指定多个init文件
-
把init.gradle文件放到 USER_HOME/.gradle/ 目录下 USER_HOME就是当前用户目录下,也就是当前用户下的.gradle目录下
如图:
-
.gradle
结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下 - 把以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下( 也就是修改maven下载源的方式 )
注意:
如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本,会按拼音a-z顺序执行这些脚本,每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会委托给这个gradle实例,每个init脚本都实现了Script接口。 仓库说明:
- mavenLocal():
指定使用maven本地仓库,而本地仓库在配置maven时settings文件指定的仓库位置。如E:/repository,gradle 查找jar包顺序如下:USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml >> USER_HOME/.m2/repository
- maven { url 地址}:
指定maven仓库,一般用私有仓库地址或其它的第三方库【比如阿里镜像仓库地址】。
- mavenCentral():
这是Maven的中央仓库,无需配置,直接声明就可以使用。
- jcenter():
JCenter中央仓库,实际也是是用的maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问,在新版本中已经废弃了,替换为了mavenCentral()。
- 阿里云仓库地址请参考: https:// developer.aliyun.com/mv n/guide
Gradle Wrapper
- Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle。
相关命令:
# 升级wrapper版本号,只是修改gradle.properties中wrapper版本,未实际下载
gradle wrapper --gradle-version=7.4.4