环境介绍
- OpenJDK 17.0.5
- Gradle 7.6
- 示例代码 fly-gradle
Gradle 项目下文件介绍
如果你的电脑安装了 gradle,可以使用 gradle init 去初始化一个新的 gradle 工程,然后使用电脑安装的 gradle 去执行构建命令。
但是每个开发电脑上的 gradle 版本不一样,为了统一构建环境,我们可以使用 gradle wrapper 限定项目依赖 gradle 的版本。
# 会生成 gradle/wrapper/* gradlew gradlew.bat
gradle wrapper --gradle-version 7.5.1 --distribution-type bin
复制代码
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
复制代码
gradlew 和 gradlew.bat
运行项目 wrapper
下定义的 gradle 去构建项目。
gradlew
是 macos 和 linux 系统下。
gradlew.bat
是 windows 系统下使用的。
wrapper
wrapper 定义项目依赖那个版本的 gradle,如果本地 distributionPath 没有对应版本的 gradle,会自动下载对应版本的 gradle。
# gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# 如果是国内项目,只需要修改这个url 就可以提高下载速度
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
复制代码
GRADLE_USER_HOME
没有配置的话,默认是 ~/.gradle
zipStoreBase
和 zipStorePath
定义了下载的 gradle (gradle-7.6-bin.zip) 存储的本地路径。
distributionBase
和 distributionPath
定义下载的 gradle 解压的本地目录。
gradlew
实际是运行 gradle-wrapper.jar 中的 main 方法,传递给 gradlew 的参数实际上也会传递给这个 main 方法。
gradle-wrapper.jar 会判断是否下载 wrapper 配置的 gradle,并且将传递参数给下载的 gradle,并运行下载的 gralde 进行构建项目。
升级 wrapper 定义的 gradle 版本
./gradlew wrapper --gradle-version 7.6
复制代码
settings.gradle
pluginManagement {
repositories {
maven {
url="file://${rootDir}/maven/plugin"
}
gradlePluginPortal()
}
plugins {
// spring_boot_version 可以在 gradle.properties 配置
id 'org.springframework.boot' version "${spring_boot_version}"
}
}
rootProject.name = 'fly-gradle'
include 'user-manage-service','user-manage-sdk'
include 'lib-a'
include 'lib-b'
复制代码
settings.gradle 主要用于配置项目名称,和包含哪些子项目。
也可以用于配置插件的依赖版本(不会应用到项目中去,除非项目应用这个插件)和插件下载的
build.gradle
build.gradle 是对某个项目的配置。配置 jar 依赖关系,定义或者引入 task 去完成项目构建。
gradle.properties
主要用于配置构建过程中用到的变量值。也可以配置一些 gradle 内置变量的值,用于修改默认构建行为。