Gradle是Maven之后出来的一款项目构建工具,在学习的过程中可以类比着去学习。当前学习Gradle的目的主要是为了读Spring源码。
安装
- 下载
- 配置环境变量
- 测试
安装的步骤和maven类似,具体的这边也不写,因为一般不用自己安装的
使用项目自带的Gradle
gradle的每个版本兼容性不是很好,比如Spring源码5.0的gradle和5.3的gradle版本就不一样,所以同一个gradle无法构建2个Spring不同版本的源码。
所以对于Gradle项目来说,我们就使用其自带的gradle就好
gradle-wrapper.properties
文件内容#指定按照目录 这里就是/home/user目录
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#下载的版本
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
#zip包下载位置
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
对于gradle项目,这边不用再IDEA中配置Gradle,保持默认,让项目自己下载即可
build.gradle文件
#插件,类比maven的插件
plugins {
id 'org.springframework.boot' version '2.7.1'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
#项目的 group version java版本
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
#指定仓库
repositories {
mavenCentral()
}
#依赖
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
依赖项
build.gradle
中的dependencies
我们基本上都可以读懂,但是前面的修饰符这边我们需要看一下。
修饰符叫作依赖作用域,即Maven中的Scope属性
- implementation:maven中的compile
- compileOnly:maven中的provided
- api:maven中的compile
- runtimeOnly:maven中的runtime
- annotationProcessor: