最近习惯性上班划水,划水嘛,那必然要有一个明确的划算目标,突然想起在面试的时候一个面试官问的一个问题:除了maven
还会些啥?
这我就很蒙,你说的是个啥,不就只有maven
嘛?好像有点“初生牛犊不怕虎”的感觉
不慌,我先思考下,我还好像还听过Gradle
可是我不会呀,那今天还是学习一下吧,赶紧先百度下这玩意怎么玩。
官网gradle官网,直接 install 再说,需要 jdk
的环境 ,1.8
及以上,不管,这年头瞧不起我还是啥,不会的jdk8
的东西还怎么混,虽然确实懂的少,但是jdk8
还是早就安排上了, 不瞎扯了,赶紧下载 Download果断 v6.5.1
配置 Gradle
解压配置环境变量:
此电脑 --> 属性 --> 高级系统设置 --> 环境变量 --> 新建系统变量
变量名(N):GRADLE_HOME
变量值(V):D:toolsdevelopmentgradle-6.5.1
-- > 当前的路径直接找你的解压路径 ,和maven
一样,操作还是很简单的哈
这个时间打开祖传的 cmd
执行gradle -v
有两个目的,其一是检查Gradle
是否安装成功,其二查看版本号信息,版本号信息如下
------------------------------------------------------------
Gradle 6.5.1
------------------------------------------------------------
Build time: 2020-06-30 06:32:47 UTC
Revision: 66bc713f7169626a7f0134bf452abde51550ea0a
Kotlin: 1.3.72
Groovy: 2.5.11
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_251 (Oracle Corporation 25.251-b08)
OS: Windows 10 10.0 amd64
就这?
回想一下在maven
中安装好了之后还要做些啥,比如:设置阿里云的镜像仓库,像这样:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
那gradle
怎么办,百度一下你就知道,需要设置在build.gradle
构建文件中,那先不管,下一步,还需要设置本地仓库存储路径,像这样:
<localRepository>D:toolsdevelopmentmaven-3.6.3repository</localRepository>
这样配置还是为了防止下载的依赖信息保存到C:
盘下但是gradle
不是这样,需要从环境变量中设置,那就来呗,和刚才操作一样:
变量名(N):GRADLE_USER_HOME
变量值(V):D:toolsdevelopmentmaven-3.6.3repository
--> 这里偷个懒,直接使用maven
的本地仓库地址,具体放在一块会不会有影响,我还真的不是很清楚,不然你这样配置一个就好了 D:toolsdevelopmentgradlerepository
反正这些都很随意
这样就没啥问题了,我要开始写代码啦,赶紧使用gradle
构建一个spring boot
项目 爽一下。
刚刚提到的build.gradle
类似maven
的pom.xml
,写法如下:
build.gradle
代码语言:javascript复制plugins {
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
// 报名 、版本号
group = 'com.example'
version = '0.0.1-SNAPSHOT'
// 编译版本
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
// 设置启动类
jar {
baseName 'testJar'
manifest {
attributes 'Main-Class': "com.example.demogradle.DemoGradleApplication"
}
}
repositories {
// 配置镜像仓库
maven { url 'https://maven.aliyun.com/repository/public/'}
// 优先本地仓库查找
mavenLocal()
// maven 仓库中心
mavenCentral()
}
// 依赖
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
compile 'cn.hutool:hutool-all:5.3.7'
// https://mvnrepository.com/artifact/com.alibaba/fastjson
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.72'
compile group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.3.2'
compile group: 'com.baomidou', name: 'mybatis-plus', version: '3.3.2'
// https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter
compile group: 'com.alibaba', name: 'druid-spring-boot-starter', version: '1.1.23'
}
test {
useJUnitPlatform()
}
这个文件中配置了很多的信息,比如依赖、比如启动类、比如配置拉取仓库的地址等等,这里有个坑,Java
使用lombok
只需要lombok
插件和依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
但是geadle
除了插件之外还需要更多的依赖,比如(官方推荐):
repositories {
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.12'
annotationProcessor 'org.projectlombok:lombok:1.18.12'
testCompileOnly 'org.projectlombok:lombok:1.18.12'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'
}
官方还提供另外一种方式Lombok Gradle插件
太麻烦了
还有一个setting.gradle
文件,settings.gradles
是模块Module配置文件,大多数setting.gradle
的作用是为了配置子模块,根目录下的setting.gradle
脚本文件是针对module
的全局配置settings.gradle
用于创建多Project
的Gradle
项目。Project
在IDEA
里对应Module
模块。例如:配置module
名rootProject.name = 'project-root'
,为指定父模块的名称,
include 'hello'
为指定包含哪些子模块
gradle
命令
gradle build
打包构建命令 、idea
的Terminal
有时候识别不了,但是可以创建 task
去运行命令,也挺好用的,只需要设置一次,不然就只能拿出祖传的cmd
了
gradlew build --refresh-dependencies
强制清除 gradle
依赖缓存
gradle clean
清理缓存命令,这个相对maven
的mvn clean
个人觉得要快一点点
还有很多的命令,但是常用的只有这些。