前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle 入门到放弃

Gradle 入门到放弃

作者头像
是小张啊喂
发布2021-08-09 17:39:27
5230
发布2021-08-09 17:39:27
举报
文章被收录于专栏:软件软件

最近习惯性上班划水,划水嘛,那必然要有一个明确的划算目标,突然想起在面试的时候一个面试官问的一个问题:除了maven 还会些啥? 这我就很蒙,你说的是个啥,不就只有maven嘛?好像有点“初生牛犊不怕虎”的感觉

不慌,我先思考下,我还好像还听过Gradle 可是我不会呀,那今天还是学习一下吧,赶紧先百度下这玩意怎么玩。

官网gradle官网,直接 install 再说,需要 jdk 的环境 ,1.8及以上,不管,这年头瞧不起我还是啥,不会的jdk8的东西还怎么混,虽然确实懂的少,但是jdk8还是早就安排上了, 不瞎扯了,赶紧下载 Download果断 v6.5.1

配置 Gradle

解压配置环境变量:

此电脑 --> 属性 --> 高级系统设置 --> 环境变量 --> 新建系统变量

变量名(N):GRADLE_HOME

变量值(V):D:\tools\development\gradle-6.5.1 -- > 当前的路径直接找你的解压路径 ,和maven一样,操作还是很简单的哈

这个时间打开祖传的 cmd 执行gradle -v

有两个目的,其一是检查Gradle是否安装成功,其二查看版本号信息,版本号信息如下

代码语言:javascript
复制
------------------------------------------------------------
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中安装好了之后还要做些啥,比如:设置阿里云的镜像仓库,像这样:

代码语言:javascript
复制
<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:\tools\development\maven-3.6.3\repository</localRepository>

这样配置还是为了防止下载的依赖信息保存到C:盘下但是gradle不是这样,需要从环境变量中设置,那就来呗,和刚才操作一样:

变量名(N):GRADLE_USER_HOME

变量值(V):D:\tools\development\maven-3.6.3\repository --> 这里偷个懒,直接使用maven的本地仓库地址,具体放在一块会不会有影响,我还真的不是很清楚,不然你这样配置一个就好了 D:\tools\development\gradle\repository反正这些都很随意

这样就没啥问题了,我要开始写代码啦,赶紧使用gradle构建一个spring boot项目 爽一下。

刚刚提到的build.gradle 类似mavenpom.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插件和依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

但是geadle除了插件之外还需要更多的依赖,比如(官方推荐):

代码语言:javascript
复制
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用于创建多ProjectGradle项目。ProjectIDEA里对应Module模块。例如:配置modulerootProject.name = 'project-root',为指定父模块的名称, include 'hello'为指定包含哪些子模块

gradle 命令

gradle build

​ 打包构建命令 、ideaTerminal有时候识别不了,但是可以创建 task去运行命令,也挺好用的,只需要设置一次,不然就只能拿出祖传的cmd

gradlew build --refresh-dependencies

​ 强制清除 gradle依赖缓存

gradle clean

​ 清理缓存命令,这个相对mavenmvn clean个人觉得要快一点点

还有很多的命令,但是常用的只有这些。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置 Gradle
  • build.gradle
  • gradle 命令
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档