Gradle系列——常用指令,修改gradle源,Wrapper包装器(源于文档7.5版本,SpringBoot使用)day1-2
Gradle常用指令
指令 | 说明 |
---|---|
gradle clean | 清空build目录 |
gradle classes | 编译业务代码和配置文件 |
gradle test | 编译测试代码,生成测试报告 |
gradle build | 构建项目 |
gradle build -x test | 跳过测试构建 |
如上的指令需要在有build.gradle文件
目录下执行
注意点
使用gradle test
命令生成测试报告后,存放在\build\reports\tests\test
使用gradle build
相当于clean+classes+test+build
整体流程
修改Gradle源
阿里巴巴镜像源地址
gradleinitd_20">1.打开gradle目录下的init.d文件夹
gradle_22">2.添加一个init.gradle文件
gradle_24">3.修改init.gradle
参照提供的实例我们修改一下,我在下面提供了基本上可能用到的所有配置
java">allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/spring/'
}
maven {
url 'https://maven.aliyun.com/repository/central/'
}
maven {
url 'https://maven.aliyun.com/repository/google/'
}
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin/'
}
maven {
url 'https://maven.aliyun.com/repository/spring-plugin/'
}
mavenLocal()
mavenCentral()
}
}
阿里云官网错误
这个地方使用的是allprojects
P是小写的,不然后面构建会报错
gradle_59">了解一下init.gradle文件
gradle_60">init.gradle文件启用方法
- 在命令行指定文件,例如:gradle -inmit.soript goudir/init.gmadle -q taskName·你可以多次输入此命令来指定多个init文件
- 把init.guadle文件放到USER_HOME/ .gxadle/目录下
- 把以.gradle结尾的文件放到USER_HOME/ .gxadle/ init.d/目录下
- 把以.gradle结尾的文件放到 GRADLE_HOME/init.d/目录下
如果存在上面的4种方式的e种以上﹐ gradle会按上面的1-4序号依吹执行这些文件﹐如果给定目录下存在多个init脚本﹐会按拼音a-z顺序执行这些脚本,每个init脚本都存在一个对应的gradle实例,你在这个文件中调用的所有方法和属性,都会委托给这个gradle实例,每个init脚本都实现了Script接口。
配置仓库说明
maxenLocal():指定使用maven本地仓库,而本地仓库在配置maven时settings文件指定的仓库位置·如E:/repository, gnadle查找jar包顺序如下:USER_HOME/.m2 / settings.xml >> Mg_HOME/conf/ settings.xml >> USER_HOME/.m2/repository
maven { url地址},指定maven仓库,一般用私有仓库地址或其它的第三方库【比如阿里镜像仓库地址】
mavenCentral():这是Maven的中央仓库,无需配置﹐直接声明就可以使用
jcenter():JCente;中央仓库﹐实际也是是用的maven搭建的﹐但相比Maven仓库更友好,通过CDN分发,并且支持https访问,在新版本中已经废弃了,替换为mavenCentral()
使用本地仓库地址和远程地址相结合方式避免每次下载都要调取远程仓库
Wrapper包装器
官方文档
Gradle Wrapper实际上就是对Gradle的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的Gradle问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:
- 对方电脑没有安装 gxadle.
- 对方电脑安装过gradle﹐但是版本太旧了
这时候,我们就可以考虑使用Gradle Wrapper了。这也是官方建议使用Gradle Wrapper的原因。实际上有了GradleWrapper之后,我们本地是可以不配置Gradile,下载 Gradlle.项目后,使用gradle,项目自带的wrapper操作也是可以的。那如何使用Gradle Wrapper呢?
Gradle Wrapper的工作流程
- 从服务器上下载分发
- 存储和解包分发
- 使用分发
详细说明:
- 当我们第一次执行 ./ gradlew build命令的时候,gradlew会读取 gradle-wrapper.properties文件的配置信息
- 准确的将指定版本的 gradle下载并解压到指定的位置(GRADLE_USER_HOME目录下的wrapper/dists目录中)
- 并构建本地缓存(GRADLE_USER_HOME目录下的caches目录中),下载再使用相同版本的gradle就不用下载了
- 之后执行的 ./ gradlew所有命令都是使用指定的 gradle版本
添加Gradle Wrapper(若你下载的是all就不需要)
java">gradle wrapper
生成 Wrapper 文件需要在您的机器上安装 Gradle 运行时版本,生成初始 Wrapper 文件是一次性的过程。
每个 vanilla Gradle 构建都带有一个名为 wrapper 的内置任务。 列出任务时,您将能够在“构建设置任务”组下找到列出的任务。 执行 wrapper 任务会在项目目录中生成必要的 Wrapper 文件
使用Gradle Wrapper
使用语法格式:gradlew.bat + 指令
如:gradlew.bat clean
项目中的gradlew 、gradlew.cmd脚本用的就是wrapper中规定的gradle版本
而我们上面提到的gradle指令用的是本地gradle,所以gradle指令和gradlew指令所使用的gradlle版本有可能是不一样的·gadlew、gadlew.cmd的使用方式与gradle使用方式完全一致﹐只不过把gmadle指令换成了gradlew指令
当然我们也可在终端执行gradlew指令时,指定指定一些参数来控制Wrapper的生成,比如依赖的版本等,如下:
参数 | 说明 |
---|---|
–gradle-version | 指定使用的Gradle版本 |
–gradle-distribution-url | 指定下载Gradle发行版的url地址 |
–distribution-type | 用于 Wrapper 的 Gradle 分发类型。 可用选项是 bin和 all. 默认值为 bin. |
–gradle-distribution-sha256-sum | 用于 验证下载的 Gradle 分发 |
语法格式:gradle wrapper + 指令
如:gradle wrapper --gradle-version=7.4.5
Gradle Wrapper的目录结构
Gradle 项目通常提供一个 settings.gradle(.kts)文件和一个 build.gradle(.kts)每个子项目的文件。 Wrapper 文件同时存在于 gradle目录和项目的根目录。 下面的列表解释了它们的目的。
- gradle-wrapper.jar
包含用于下载 Gradle 分发的代码的 Wrapper JAR 文件。
- gradle-wrapper.properties
负责配置 Wrapper 运行时行为的属性文件,例如与此版本兼容的 Gradle 版本。 请注意,更通用的设置,例如 将 Wrapper 配置为使用代理 ,需要进入 不同的文件 。
用于使用 Wrapper 执行构建的 shell 脚本和 Windows 批处理脚本。