点击关注公众号,Java干货及时送达

作为Java Web开发,很多朋友都在使用Maven作为构建工具。Gradle作为Google大力拥护的构建工具,被广泛地运用到了Android开发中,在Java Web方面也大有取代Maven上位的趋势。
Gradle真的有那么香么?
今天我们来体验一把,以我的脚手架项目mall-tiny为例,看看Gradle到底行不行!
Gradle是一款开源的自动化构建工具,使用灵活且性能极佳,可以使用 Groovy 或者 Kotlin DSL 来编写构建脚本。从移动开发到微服务,从小团队到大企业,Gradle提高了开发人员的生产力。
Gradle具有如下特性:
接下来将把我的脚手架项目mall-tiny从使用Maven改造成使用Gradle,来体验一把Gradle的使用。




build.gradle和settings.gradle这两个文件。
在新创建的build.gradle文件中,我们可以发现下面3个插件:
plugins { id 'org.springframework.boot' version '2.3.0.RELEASE' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}org.springframework.bootSpringBoot官方提供的Gradle插件,方便我们使用SpringBoot,通过修改version可以控制使用的SpringBoot版本。
io.spring.dependency-management一个可以提供依赖版本管理功能的Gradle插件(类似于Maven)。
比如之前我们使用Maven管理Druid版本时,会先在<dependencyManagement>中定义好依赖的版本。
<dependencyManagement><dependencies><!--集成druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency></dependencies></dependencyManagement>然后在引入依赖的时候就无需再填写版本号了,这样做的好处就是可以统一依赖的版本。
<dependencies><!--集成druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></dependency></dependencies>在Gradle中你可以这样用,是不是简洁不少!
dependencies { implementation 'com.alibaba:druid-spring-boot-starter'}dependencyManagement { dependencies { dependency 'com.alibaba:druid-spring-boot-starter:1.1.10' }}javaJava插件将Java编译、测试等常用功能添加到项目中,它是许多其他JVM语言Gradle插件的基础。
Maven项目转Gradle非常简单,只需要把pom.xml中的依赖转为build.gradle中的依赖即可。
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.5.7</version></dependency>dependencies { implementation 'cn.hutool:hutool-all:4.5.7'}repositories { maven { url 'https://maven.aliyun.com/repository/public' } mavenCentral()}build.gradle,已经添加所有依赖;plugins { id 'org.springframework.boot' version '2.3.0.RELEASE' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}group = 'com.macro.mall.tiny'version = '1.0.0-SNAPSHOT'sourceCompatibility = '1.8'repositories { maven { url 'https://maven.aliyun.com/repository/public' } mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group:'org.junit.vintage', module:'junit-vintage-engine' } implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-aop' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-configuration-processor' implementation 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' implementation 'com.alibaba:druid-spring-boot-starter' implementation 'mysql:mysql-connector-java' implementation 'io.springfox:springfox-swagger2' implementation 'io.springfox:springfox-swagger-ui' implementation 'io.swagger:swagger-models' implementation 'io.swagger:swagger-annotations' implementation 'cn.hutool:hutool-all' implementation 'io.jsonwebtoken:jjwt' implementation 'com.baomidou:mybatis-plus-boot-starter' implementation 'com.baomidou:mybatis-plus-generator' implementation 'org.apache.velocity:velocity-engine-core'}dependencyManagement { dependencies { dependency 'com.alibaba:druid-spring-boot-starter:1.1.10' dependency 'mysql:mysql-connector-java:8.0.16' dependency 'io.springfox:springfox-swagger2:2.9.2' dependency 'io.springfox:springfox-swagger-ui:2.9.2' dependency 'io.swagger:swagger-models:1.6.0' dependency 'io.swagger:swagger-annotations:1.6.0' dependency 'cn.hutool:hutool-all:4.5.7' dependency 'io.jsonwebtoken:jjwt:0.9.0' dependency 'com.baomidou:mybatis-plus-boot-starter:3.3.2' dependency 'com.baomidou:mybatis-plus-generator:3.3.2' dependency 'org.apache.velocity:velocity-engine-core:2.2' }}test { useJUnitPlatform()}
都说Gradle构建速度快,官方自己也在说,我们将项目clean以后构建下试试,看看到底有多快!

32s;

15s,快了不止一倍!

Gradle作为Google官方推荐的构建工具,确实很不错!如果你会写Groovy脚本的话,使用起来是非常灵活的,而且语法简洁,构建速度也很快!
Gradle官方文档:https://docs.gradle.org

往 期 推 荐
2、开源项目:Silky Starter 如丝般顺滑的 Spring Boot 组件生态
3、SpringBoot 实现 DOCX 转 PDF(基于 docx4j 的轻量级开源方案)
4、Spring+asyncTool:实现复杂任务的优雅编排与高效执行
点分享
点收藏
点点赞
点在看