SpringBoot实战电商项目mall(40k+star)地址:github.com/macrozheng/…
摘要
作为Java Web开发,很多朋友都在使用Maven作为构建工具。Gradle作为Google大力拥护的构建工具,被广泛地运用到了Android开发中,在Java Web方面也大有取代Maven上位的趋势。Gradle真的有那么香么?今天我们来体验一把,以我的脚手架项目mall-tiny
为例,看看Gradle到底行不行!
Gradle简介
Gradle是一款开源的自动化构建工具,使用灵活且性能极佳,可以使用 Groovy 或者 Kotlin DSL 来编写构建脚本。从移动开发到微服务,从小团队到大企业,Gradle提高了开发人员的生产力。
Gradle具有如下特性:
- 可以高度定制:Gradle使用可定制、可扩展的方式进行建模,非常灵活。
- 构建速度快:Gradle通过重用先前执行的输出,仅处理已更改的输入且通过并行执行任务来快速完成构建。
- 功能强大:Gradle是Android的官方构建工具,并支持许多流行的语言和技术。
Gradle使用体验
接下来将把我的脚手架项目
mall-tiny
从使用Maven改造成使用Gradle,来体验一把Gradle的使用。
创建Gradle项目
- 首先需要下载Gradle的安装包,建议下载带源码的完整版本(否则Gradle中属性点进去不会有注释)下载地址:gradle.org/releases/
- 下载完成后进行解压,之后在IDEA中创建一个SpringBoot项目;
- 选择创建一个Gradle项目;
- 之后选择使用我们之前下载好的Gradle版本,输入你解压的目录;
- 项目创建完成后,一个非常简单的Gradle项目目录结构如下,需要注意的是
build.gradle
和settings.gradle
这两个文件。
Gradle插件介绍
在新创建的build.gradle
文件中,我们可以发现下面3个插件:
1 | groovy复制代码plugins { |
org.springframework.boot
SpringBoot官方提供的Gradle插件,方便我们使用SpringBoot,通过修改version
可以控制使用的SpringBoot版本。
io.spring.dependency-management
一个可以提供依赖版本管理功能的Gradle插件(类似于Maven)。
比如之前我们使用Maven管理Druid版本时,会先在<dependencyManagement>
中定义好依赖的版本。
1 | xml复制代码<dependencyManagement> |
然后在引入依赖的时候就无需再填写版本号了,这样做的好处就是可以统一依赖的版本。
1 | xml复制代码<dependencies> |
在Gradle中你可以这样用,是不是简洁不少!
1 | groovy复制代码dependencies { |
java
Java插件将Java编译、测试等常用功能添加到项目中,它是许多其他JVM语言Gradle插件的基础。
Maven转Gradle
Maven项目转Gradle非常简单,只需要把
pom.xml
中的依赖转为build.gradle
中的依赖即可。
- 比如说Hutool这个依赖,Maven中的写法是这样的:
1 | xml复制代码<dependency> |
- Gradle中的写法是这样的,一行即可搞定:
1 | groovy复制代码dependencies { |
- 有时候Gradle下载依赖比较慢,这里将url修改为阿里云的Maven仓库地址可以加速;
1 | groovy复制代码repositories { |
- 再来个完整的
build.gradle
,已经添加所有依赖;
1 | groovy复制代码plugins { |
- 最后你需要做的就是把原来的代码都复制过来就行了,至此Gradle改造完成。
对比Maven
都说Gradle构建速度快,官方自己也在说,我们将项目clean以后构建下试试,看看到底有多快!
- 首先使用之前的Maven项目,直接clean之后再package,打包构建下;
- 控制台输出如下,耗时
32s
;
- 再使用现在的Gradle项目,也是clean之后再package(Gradle中使用bootjar命令),打包构建下;
- 控制台输出如下,耗时
15s
,快了不止一倍!
- 再放张官方的对比图,Gradle构建比Maven快1倍,那是妥妥的!
总结
Gradle作为Google官方推荐的构建工具,确实很不错!如果你会写Groovy脚本的话,使用起来是非常灵活的,而且语法简洁,构建速度也很快!
参考资料
Gradle官方文档:docs.gradle.org
项目源码地址
本文 GitHub github.com/macrozheng/… 已经收录,欢迎大家Star!
本文转载自: 掘金