Gradle和Maven的主要区别

在java开发中,我们都会用到一些构建工具,常用的构建工具有Ant、Maven、Gradle。经过这么多年的发展,终于Ant几乎快销声匿迹了,Maven和Gradle在项目开发中用得比较多,其中以Gradle发展得最好。

Gradle和Maven的主要区别

Maven的主要功能是多模块构建、依赖管理系统、一致的项目结构、一致的项目构建模型和插件机制。在此,我将以这5点来做一个区分。

1.0多模块构建

Gradle和Maven的主要区别

在目前的项目中,一般我们会将一个项目分解是多个模块。在Maven中需要定义一个parent POM作为一组module的通用配置,我们可以用<modules>标签来定义一组子模块

在Gradle也支持多模块构建,在parent的build.gradle中可以使用subprojects和allprojects定义所有的子模块。对于子模块的定义可以放在setting.gradle文件中。

2.0依赖管理系统

Gradle和Maven的主要区别

在Maven中,可以用GroupID、ArtifactID、Version组成一个唯一的标识。任何Maven项目都必须要定义这三个属性。GroupID相当于package,ArtifactID相当于Class。

Gradle支持动态的版本依赖,在版本号后面使用+号可以实现动态的版本管理。

3.0一致的构建模型

Gradle和Maven的主要区别

Maven设置了标准的项目周期,包含验证、初始化、生成原始的数据、处理原始数据、生成资源、处理资源、编译、处理类。。。。等等。而Gradle更加的灵活,可以创建一个task,并随时通过depends建立与已有task的依赖关系

4.0一致的项目结构

Gradle和Maven的主要区别

Maven指定了一套标准的项目结构作为java项目结构,Gradle也是沿用了这套标准。在Gradle中只需在文件中包含applyplugin:'java',系统既可以自动识别

5.0插件机制

两者都采用了插件机制

© 版权声明

相关文章

5 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    亿语莱杨程 读者

    Gradle更加灵活,语法更加简洁

    无记录
  • 头像
    英雄 读者

    gradle就是个辣鸡,中小项目尚可, 模块多了之后,构建速度真的感人,不加SSD 5分钟,上了SSD还要1分多钟,更可气的是时不时还会出现一些莫名其妙的构建错误,重新构建一下又好了,严重影响开发人员效率!

    无记录
  • 头像
    的猫叫 读者

    你的字多,应该你是对的

    无记录
  • 头像
    熊小默 投稿者

    哪里的数据表明gradle比maven发展的好?

    无记录
  • 头像
    冰糖邮递员 投稿者

    收藏了,感谢分享

    无记录