Gradle vs Maven

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。

一、Gradle相比Maven的优势

1、配置简洁:Maven是用pom.xml管理,引入一个jar包至少5行代码,Gradle只需要一行。

2、构建速度快:Gradle支持daemon方式运行,启动速度快,同时有基于daemon的增量构建,充分利用JVM的运行时优化,和缓存数据构建速度相比Maven快很多。

3、更好的灵活性、扩展性:Gradle 相对于 Maven 等构建工具, 其提供了一系列的 API 让我们有能力去修改或定制项目的构建过程。

二、基本配置

1、设置本地仓库地址:默认本地仓库地址是:~/.gradle,Windows下会占用大量C盘空间。设置环境变量,GRADLE_USER_HOME=/your/path

2、 复用Maven本地仓库:在repositories配置mavenLocal()即可,如果是init.gradle全局配置

Maven本地仓库查找路径:(1)USER_HOME/.m2/settings.xml(2)M2_HOME/conf/settings.xml(3)USER_HOME/.m2/repository

  1. 国内镜像加速:国内访问国外仓库地址很慢,第一种方法是在每个项目中设置repositories

Java生态体系中有三大构建工具:Ant、Maven和Gradle。Ant几乎销声匿迹,Maven已经成为行业标准。但Maven烦冗XML的配置,缺乏灵活性,学习曲线陡峭等缺点,给了Gradle这个后起之秀机会。

gradle没有依赖包管理功能,它本地保存的是依赖缓存,它也没有本地仓库的概念,这导致你要想在gradle里加一个私有依赖特别麻烦(maven一个命令行就能安装到本地依赖库)。

maven是依赖包管理工具,有完善的本地仓库------远程仓库的路线设计。但是构建是靠插件完成的,不能像gradle那样搞特别多的魔法操作,相对简单稳定。

gradle没有依赖包管理功能,它本地保存的是依赖缓存,它也没有本地仓库的概念,这导致你要想在gradle里加一个私有依赖特别麻烦(maven一个命令行就能安装到本地依赖库)。

maven是依赖包管理工具,有完善的本地仓库------远程仓库的路线设计。但是构建是靠插件完成的,不能像gradle那样搞特别多的魔法操作,相对简单稳定。

技术类型从来不是"谁比谁好"的问题,而是综合团队现状进行的综合决策。我的团队里绝大多数人都是老年人,用Maven溜的一逼,那就Maven;我的团队里多数都是有技术热情的新人,学啥不是学,那就可以尝试Gradle;诸如此类。现阶段,我想不到哪个需求一定要Gradle或者一定要Maven才能完成。

相关推荐
不爱吃米饭_3 分钟前
Apache PDFBox Java PDF处理库
java
mldong6 分钟前
流程图上没画人,单子却走对了:工作流引擎内置处理人解析器
java·架构
tanzongbiao1 小时前
Dorado7文件上传 解决HttpServletResponse返回值中文乱码的问题
java·服务器·前端
茶本无香2 小时前
Arthas 实战:线上“看 Map”的四种武器
java·map·arthas·线上定位
霸道流氓气质3 小时前
Spring AI异常处理与重试机制
java·人工智能·spring
郑州光合科技余经理5 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
萧瑟余晖5 小时前
Java深入解析篇三十三之密封类与接口(Sealed Classes)详解
java·开发语言
论迹复利9 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
张宇Joaquin9 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
宸津-代码粉碎机10 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring