当前位置: 首页 > 后端技术 > Java

Maven构建工具mvnd或Gradle哪个更快,更快?

时间:2023-04-01 15:21:56 Java

Maven作为一款经典的项目构建工具,相信很多人用了很久,但是如果你体验过Gradle,只有“真香”两个字。前段时间测评了速度更快的Maven构建工具mvnd。感觉性能还是挺高的。似乎有一种“不用再用Gradle了”的感觉。本文将通过三者的性能对比告诉你谁才是王者。一、mvnd简介mvnd是MavenDaemon的缩写,翻译成中文就是Maven守护进程。mvnd是apache/maven的子项目,它不是一个全新的构建工具,而是maven的扩展。它内置了maven,其实现原理是构建一个或多个maven守护进程来执行构建服务。2.Gradle简介Gradle是新一代开源的自动化构建工具,具有高效、灵活等诸多优点,广泛应用于Java系统的开发流程中。Gradle优点简述语法体验更好,可以摆脱XML繁琐的配置。Gradle构建速度很快,可以通过重用先前执行的输出、仅处理更改的输入以及并行执行任务来快速完成构建。可以直接在脚本中编写逻辑,灵活性体验高于Maven。Gradle是Android官方的构建工具,支持很多流行的语言和技术。可以直接原生兼容Maven的配置,否则Maven无法原生兼容Gradle。Gradle版本更新很快。3.使用Gradle使用Idea,我们可以直接创建一个Gradle工程。以创建SpringBoot项目为例,如下图:选择第三个GradleProject即可。Gradle和Maven一样不需要安装,使用Idea默认提供的插件即可。3.1用国内源替换Gradle。为了下载速度更快(第三方jar包),我们可以将Gradle配置为国内源。首先打开用户目录下的.gradle文件夹,新建一个init.gradle文件,如下图:添加配置如下:allprojects{repositories{maven{url'https://maven.aliyun.com/repository/public/'}mavenLocal()mavenCentral()}}以上是设置下载数据源为阿里云。注意:在创建项目前先设置国内源,这样在创建SpringBoot项目时就可以直接使用国内数据源,加快项目的创建和初始化。设置好国内源后,开始创建Gradle版本的SpringBoot项目,与Maven的创建方法类似,这里不再赘述。最终创建的SpringBoot项目如下:可以看到Gradle项目的目录和Maven项目的目录几乎一模一样,下面是Maven项目的目录:3.2项目依赖文件对比依赖配置文件Maven工程是pom.xml,Gradle工程的依赖文件是settings.gradle和build.gradle。settings.gradleVSbuild.gradlesettings.gradle文件是gradle工程的整体配置文件。一般子项目中一些常用的配置都放在这个文件中,有点类似于maven的父pom文件,而build.gradle文件是针对单个项目的具体配置,我们主要使用build.gradle文件。build.gradle配置如下:plugins{id'org.springframework.boot'version'2.5.8'id'io.spring.dependency-management'version'1.0.11.RELEASE'id'java'}group='com.example'version='0.0.1-SNAPSHOT'sourceCompatibility='1.8'configurations{compileOnly{extendsFromannotationProcessor}}repositories{mavenCentral()}dependencies{implementation'org.springframework.boot:spring-boot-starter-web'compileOnly'org.projectlombok:lombok'developmentOnly'org.springframework.boot:spring-boot-devtools'annotationProcessor'org.projectlombok:lombok'testImplementation'org.springframework.boot:spring-boot-starter-test'}test{useJUnitPlatform()}从上面的配置文件可以看出build.gradle比pom.xml中的内容要简单的多。它们的对比如下图所示:3.3打包项目点击Idea右侧的即可生成。Maven打包工程如下图所示:对应的Gradle打包如下:4.使用mvnd时需要安装mvnd。上一篇已经介绍过了,这里不再赘述。点击查看详情:https://juejin.cn/post/70461876149902377325。性能对比接下来新建两个SpringBoot2.5.8+Java8测试打包性能,具体测试结果如下5.1Maven打包性能Maven第一次打包耗时为:6.524秒。5.2mvnd打包性能mvnd第一次打包耗时为:4.832秒,比Maven性能提升135%。5.3Gradle打包性能Gradle第一次打包耗时为:1.560秒,比Maven性能提升418%,比mvnd性能提升300%。扩展名:Gradle打包文件存放目录Gradle打包文件存放在“项目根路径\build\libs”下,如下图:总结虽然mvnd的目标是利用Gradle技术提供更快的Maven构建,但是已经通过本文测试发现Gradle打包的性能仍然是最高的,比Maven提升了418%,比mvnd提升了300%,而且Gradle的配置文件更简单易读.它仍然是最推荐的项目构建工具。判断是非在己,名誉在人,得失在数。公众号:Java面试真题解析